mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2026-05-25 08:44:42 -04:00
Compare commits
1584 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8e52bd4c1a | ||
|
|
2a66107cbc | ||
|
|
2dec15c760 | ||
|
|
dcda176614 | ||
|
|
98306e20be | ||
|
|
a8e505d668 | ||
|
|
3acf9056ec | ||
|
|
9e800fa2c3 | ||
|
|
5578b40185 | ||
|
|
03e2bed008 | ||
|
|
c57a3d8973 | ||
|
|
6178b7b678 | ||
|
|
4e85b8a677 | ||
|
|
23e4deb7c4 | ||
|
|
f7d06c1da4 | ||
|
|
a25653e3cf | ||
|
|
49ef2a2105 | ||
|
|
57f5d419dd | ||
|
|
58192f74c0 | ||
|
|
d34ff02686 | ||
|
|
37cacdbc39 | ||
|
|
f312a45469 | ||
|
|
18d61188ff | ||
|
|
718729b4c7 | ||
|
|
9a881c5232 | ||
|
|
82a9348bf9 | ||
|
|
76d6ad215e | ||
|
|
2e2ef29f72 | ||
|
|
2d21980313 | ||
|
|
7eb310aac6 | ||
|
|
c72ef2aae9 | ||
|
|
c8e7fab9d3 | ||
|
|
4ca39bfedb | ||
|
|
6ec7fa822b | ||
|
|
fb21359663 | ||
|
|
030b67224e | ||
|
|
2ce73993c6 | ||
|
|
0d08e8e15b | ||
|
|
c3150efad5 | ||
|
|
303a1442d7 | ||
|
|
8a2923854a | ||
|
|
9318adaeb9 | ||
|
|
ea64e5bb40 | ||
|
|
5dd340d84c | ||
|
|
36bab70bfd | ||
|
|
e4aa4017ba | ||
|
|
87ea0c45f7 | ||
|
|
9ee3557672 | ||
|
|
0fd531c4a2 | ||
|
|
a54f596ea9 | ||
|
|
d571734f98 | ||
|
|
516f8f71da | ||
|
|
5c31fb094b | ||
|
|
7b20e2c29c | ||
|
|
d8431b8c00 | ||
|
|
4484a47d4c | ||
|
|
ea523dd765 | ||
|
|
b0e833f8c4 | ||
|
|
4e83d967c1 | ||
|
|
f01f882bb8 | ||
|
|
e72dc752bb | ||
|
|
8e054de506 | ||
|
|
084770643d | ||
|
|
4b2b098a85 | ||
|
|
d4d25d240e | ||
|
|
2393c21647 | ||
|
|
e47f3ee571 | ||
|
|
5ddda4dc1e | ||
|
|
20d78224a4 | ||
|
|
8571cd1a44 | ||
|
|
772e809ee6 | ||
|
|
35b09b2dfb | ||
|
|
705fc1dd0b | ||
|
|
814cd4503c | ||
|
|
9020e85a17 | ||
|
|
f0b2f64490 | ||
|
|
36b0b28109 | ||
|
|
5a124ede99 | ||
|
|
a8aafb6f47 | ||
|
|
eae0f8e0cb | ||
|
|
9542f2dd9c | ||
|
|
b8eb67a14a | ||
|
|
d763dd3665 | ||
|
|
5e3a6f0b07 | ||
|
|
d45d57ac4a | ||
|
|
58476dd3bc | ||
|
|
67e1e4ef19 | ||
|
|
8a26195a60 | ||
|
|
84a3a7e9b7 | ||
|
|
958469e207 | ||
|
|
47f61e1a30 | ||
|
|
f04ff91f44 | ||
|
|
e6ac4de69d | ||
|
|
e1ff739621 | ||
|
|
625fb584ed | ||
|
|
fdb8cf8bda | ||
|
|
65c84a8857 | ||
|
|
c0ac4b3400 | ||
|
|
3471c0f947 | ||
|
|
3aafa1649c | ||
|
|
a8b37d36ff | ||
|
|
5ec7e11c37 | ||
|
|
96c3738a7e | ||
|
|
1bb72d9fa9 | ||
|
|
5737d220eb | ||
|
|
f40c4aedef | ||
|
|
52fc45ae23 | ||
|
|
44f0036ac0 | ||
|
|
1e47521f55 | ||
|
|
d840a67150 | ||
|
|
8a16d5c93c | ||
|
|
b3d4ad1a13 | ||
|
|
2b8a2d8bb6 | ||
|
|
49be337200 | ||
|
|
632e25abe3 | ||
|
|
760d7490a2 | ||
|
|
c0ff849c0f | ||
|
|
730b9ff366 | ||
|
|
71f12bf205 | ||
|
|
8960f57bea | ||
|
|
437b4115e6 | ||
|
|
461db7883f | ||
|
|
f254ecc44a | ||
|
|
6432843fda | ||
|
|
ef198ce07a | ||
|
|
847724c5b3 | ||
|
|
7c173cbfe2 | ||
|
|
93b3e85b8d | ||
|
|
4e83a2d45f | ||
|
|
eb9e9ddd38 | ||
|
|
4fa69cbe13 | ||
|
|
12d79b7309 | ||
|
|
2743a6cf15 | ||
|
|
9528624c0e | ||
|
|
382aebcf16 | ||
|
|
1be9fd04c4 | ||
|
|
407a7c0132 | ||
|
|
8732648fc0 | ||
|
|
a3380a616b | ||
|
|
56487226ef | ||
|
|
cba6efec73 | ||
|
|
7872a4c212 | ||
|
|
64ab220c4d | ||
|
|
f8e9090eb7 | ||
|
|
edef11ce7f | ||
|
|
9ad13bf3e2 | ||
|
|
3f70e24780 | ||
|
|
5522f8580c | ||
|
|
956b54ad27 | ||
|
|
1860fa0eaa | ||
|
|
9e2cc52275 | ||
|
|
3ee277ef70 | ||
|
|
1b5fe21f00 | ||
|
|
dd0b1d4628 | ||
|
|
65da551aad | ||
|
|
9aa6406dae | ||
|
|
d429712c98 | ||
|
|
8c92cbb277 | ||
|
|
40f02988d8 | ||
|
|
9d7519bdc1 | ||
|
|
4fcfdfd4aa | ||
|
|
8e99889174 | ||
|
|
30134520f4 | ||
|
|
0ade104dff | ||
|
|
1709be588f | ||
|
|
bf88f8fdae | ||
|
|
bb309c2579 | ||
|
|
b8bfe2239e | ||
|
|
22324471e7 | ||
|
|
5a638aa11c | ||
|
|
f59bffd063 | ||
|
|
24687756c1 | ||
|
|
b4fadbf84f | ||
|
|
7873110fc5 | ||
|
|
46d957f5b4 | ||
|
|
458856668d | ||
|
|
98bd5ed09c | ||
|
|
8b22b1d733 | ||
|
|
b9727d72d7 | ||
|
|
3e4e6af726 | ||
|
|
4aabbaadaf | ||
|
|
a009f1719a | ||
|
|
cb67b53913 | ||
|
|
d31307f8f7 | ||
|
|
18bdb5d854 | ||
|
|
27e297540e | ||
|
|
88033799a0 | ||
|
|
d9ec9ce772 | ||
|
|
b680bea331 | ||
|
|
9116dc1920 | ||
|
|
088f175fd6 | ||
|
|
8f3d960817 | ||
|
|
33734a27ce | ||
|
|
dbcf980a2a | ||
|
|
e0709fcebb | ||
|
|
b54adc09ad | ||
|
|
33f87aeff1 | ||
|
|
ceb6ba49b2 | ||
|
|
4d0b23cd23 | ||
|
|
9cc38765c3 | ||
|
|
b65f68b677 | ||
|
|
702c1dc4df | ||
|
|
7040f80b7f | ||
|
|
d925388424 | ||
|
|
6c35f4bce0 | ||
|
|
dd7f8bb508 | ||
|
|
0ac0d1d06c | ||
|
|
5ffd536d4c | ||
|
|
2f71a6c6bb | ||
|
|
e8a15ebd37 | ||
|
|
8d88e23ab9 | ||
|
|
b07b17f1c7 | ||
|
|
ea8b9b4d10 | ||
|
|
b3d7b8d2f7 | ||
|
|
cf2f29d91b | ||
|
|
5514cbea79 | ||
|
|
5e9e09a227 | ||
|
|
27659f8098 | ||
|
|
aed4163c51 | ||
|
|
09e3e56245 | ||
|
|
edf2258463 | ||
|
|
0cb20b6384 | ||
|
|
10bc0b5720 | ||
|
|
7704d5ec6f | ||
|
|
b08f087306 | ||
|
|
0484cdd7d6 | ||
|
|
e7deac8a00 | ||
|
|
d0e44a2fc5 | ||
|
|
b7fcc94eb0 | ||
|
|
a11f25e983 | ||
|
|
85fea45def | ||
|
|
6d91ae3845 | ||
|
|
be44fb2aa7 | ||
|
|
fa15b1e94b | ||
|
|
535df2b706 | ||
|
|
5fa4e18eb7 | ||
|
|
581ca8745a | ||
|
|
687ae74a62 | ||
|
|
f3ee3d7dbd | ||
|
|
fb0cee0e74 | ||
|
|
1bd9501e76 | ||
|
|
3fa55b2ff4 | ||
|
|
633a888ae4 | ||
|
|
12125dfbd7 | ||
|
|
06aa032d45 | ||
|
|
46f0af4d48 | ||
|
|
70857ba358 | ||
|
|
5cf0d5faeb | ||
|
|
d6df082d32 | ||
|
|
2cd90ccb17 | ||
|
|
63ea90f537 | ||
|
|
a3fb05b566 | ||
|
|
8fc27d88e0 | ||
|
|
b2bb4d8b62 | ||
|
|
2fd50471de | ||
|
|
ecff38d5bb | ||
|
|
026114457b | ||
|
|
d5659b5131 | ||
|
|
979ec9fe02 | ||
|
|
89a56820d2 | ||
|
|
145f49d247 | ||
|
|
a155399ec0 | ||
|
|
f5424a3ed2 | ||
|
|
35023e648f | ||
|
|
00020ba7dc | ||
|
|
3854587907 | ||
|
|
ba6826a31e | ||
|
|
a154a8705c | ||
|
|
e6dad3eb81 | ||
|
|
b3b7b227a9 | ||
|
|
f4a941e209 | ||
|
|
75f45bdb47 | ||
|
|
8a9edb8963 | ||
|
|
6f78672f82 | ||
|
|
68a2489e13 | ||
|
|
9b18072f1e | ||
|
|
59142d9f69 | ||
|
|
a79e9dd4cb | ||
|
|
6eb5ed9381 | ||
|
|
bfa42dba4a | ||
|
|
54d07e9063 | ||
|
|
e830595f43 | ||
|
|
79632731f8 | ||
|
|
5ed8384d45 | ||
|
|
307407d732 | ||
|
|
a0b885d5ca | ||
|
|
5bf2f2ec43 | ||
|
|
a5f9185308 | ||
|
|
c9535653c9 | ||
|
|
249aa091fd | ||
|
|
569e09e741 | ||
|
|
5a58af7a01 | ||
|
|
9557f1c310 | ||
|
|
ee860e3b71 | ||
|
|
1dc3e15a55 | ||
|
|
d5d6d6668c | ||
|
|
0051fa87ec | ||
|
|
15a987cfd9 | ||
|
|
96bfa330ba | ||
|
|
231fe483d9 | ||
|
|
431074af58 | ||
|
|
06d73959af | ||
|
|
06eebc2ad3 | ||
|
|
42f8d71404 | ||
|
|
9b4621d3b8 | ||
|
|
6b830d7acd | ||
|
|
99fb55051a | ||
|
|
6bd0d6277b | ||
|
|
494b112424 | ||
|
|
b0ba354b31 | ||
|
|
e27c703026 | ||
|
|
822cd9f4ce | ||
|
|
a964c9b7d0 | ||
|
|
7e49a7b82a | ||
|
|
5fe3b2ff00 | ||
|
|
c1b2e0cec6 | ||
|
|
11f2f1eafa | ||
|
|
60d2dfcf1e | ||
|
|
64b2843cf6 | ||
|
|
d716cf9a48 | ||
|
|
01bb4e1b7a | ||
|
|
3572ed1f86 | ||
|
|
66d426a1b6 | ||
|
|
62946906d8 | ||
|
|
20e0eae9bd | ||
|
|
cf4a794c51 | ||
|
|
748c48b43f | ||
|
|
03f2a0a921 | ||
|
|
d2409bf952 | ||
|
|
783de92707 | ||
|
|
5db1c7a813 | ||
|
|
5720f2b893 | ||
|
|
5286f80748 | ||
|
|
8a19bf3f4a | ||
|
|
c2a13fce9c | ||
|
|
b1973f26c9 | ||
|
|
b5265870be | ||
|
|
4584b7eace | ||
|
|
8a0c88b11c | ||
|
|
3281fc9bb0 | ||
|
|
971ae5ec19 | ||
|
|
fb9fec1a10 | ||
|
|
c4c475b51f | ||
|
|
e7ec8aa49f | ||
|
|
1be27549df | ||
|
|
8e979deb99 | ||
|
|
5ba9746264 | ||
|
|
20e4040d02 | ||
|
|
425bee0ba1 | ||
|
|
5fe7186571 | ||
|
|
3382610871 | ||
|
|
0f2bafc7dd | ||
|
|
ea85a85518 | ||
|
|
531035fef2 | ||
|
|
1d39ec3aa5 | ||
|
|
ecb21d2d5e | ||
|
|
a2a5db8901 | ||
|
|
04ade7ab0b | ||
|
|
e579029ded | ||
|
|
be06cec80d | ||
|
|
ba1ef472e6 | ||
|
|
45894857a6 | ||
|
|
4f60465fa0 | ||
|
|
cefd287668 | ||
|
|
009905e405 | ||
|
|
bc38e94f42 | ||
|
|
ff8625fbe7 | ||
|
|
a5440f0443 | ||
|
|
5692ae4902 | ||
|
|
1cf5cbadd0 | ||
|
|
82351243f9 | ||
|
|
d47e687337 | ||
|
|
3700674045 | ||
|
|
b646e78ba6 | ||
|
|
b1cb951a9e | ||
|
|
f30e085d78 | ||
|
|
91c6508317 | ||
|
|
d341f1987a | ||
|
|
34b7e68f04 | ||
|
|
858320fe20 | ||
|
|
4300f0a3c6 | ||
|
|
7c33159a38 | ||
|
|
9583483543 | ||
|
|
ba19bc5ad6 | ||
|
|
a9b63fa360 | ||
|
|
dbe525a724 | ||
|
|
7a1891e5e8 | ||
|
|
c6048c8461 | ||
|
|
1c76edfc01 | ||
|
|
eae2dd483b | ||
|
|
a8d0a376f3 | ||
|
|
be2ff4bee4 | ||
|
|
609cb14cda | ||
|
|
2d57326779 | ||
|
|
2eec0ae6f0 | ||
|
|
99bd6570b9 | ||
|
|
2110692664 | ||
|
|
bc4a5570a5 | ||
|
|
d8f784c3f0 | ||
|
|
7d94ba7817 | ||
|
|
f3e87d3c3c | ||
|
|
f4487947c5 | ||
|
|
72915d84ef | ||
|
|
62eae20cfa | ||
|
|
3e698f96dc | ||
|
|
ea7cb48f1c | ||
|
|
cdaf88ef28 | ||
|
|
822b7211ec | ||
|
|
d7a59221fc | ||
|
|
b8174a85ee | ||
|
|
519242aead | ||
|
|
ff79b73e34 | ||
|
|
c8b49de7d1 | ||
|
|
cd9e05dac1 | ||
|
|
1488453ffa | ||
|
|
c5838ba098 | ||
|
|
b88b60597b | ||
|
|
3ceb2569cf | ||
|
|
556335918b | ||
|
|
7145ad9eec | ||
|
|
57dc2d2b11 | ||
|
|
bf88927e66 | ||
|
|
efd53cbccf | ||
|
|
e0620e1a3e | ||
|
|
622fdc27aa | ||
|
|
7a7d1ed44e | ||
|
|
161bbb4e07 | ||
|
|
035f2b7982 | ||
|
|
4234c4bc3a | ||
|
|
fa9f0ade55 | ||
|
|
0bbb6adaba | ||
|
|
8452959388 | ||
|
|
d1ba4bc875 | ||
|
|
fbd895d67c | ||
|
|
ca2907d6a6 | ||
|
|
6b07d8ee21 | ||
|
|
8d97efd52d | ||
|
|
864b024f31 | ||
|
|
8d6a23d0e7 | ||
|
|
4722a5600f | ||
|
|
aba9c2bc30 | ||
|
|
dea21f6d38 | ||
|
|
3cb1bf6b87 | ||
|
|
dfe66e8083 | ||
|
|
285b66406b | ||
|
|
99d861535e | ||
|
|
ba40783017 | ||
|
|
c871c68aeb | ||
|
|
6e523a30ab | ||
|
|
7739994eda | ||
|
|
5007410c1a | ||
|
|
b4eabd2265 | ||
|
|
40d8ea0268 | ||
|
|
0de4e51c41 | ||
|
|
6c6c18418e | ||
|
|
2f245b0c73 | ||
|
|
1337e88191 | ||
|
|
6ad6483e3a | ||
|
|
afa13473ed | ||
|
|
4e26567bee | ||
|
|
d0ac084cac | ||
|
|
bee6e4d2a9 | ||
|
|
a6c76ae0e4 | ||
|
|
bf0875be45 | ||
|
|
74585ff97d | ||
|
|
81ea7ab872 | ||
|
|
4b6fd69e3c | ||
|
|
bc4266e9ab | ||
|
|
d6147b4292 | ||
|
|
84ef3e6c3d | ||
|
|
b4cde57036 | ||
|
|
4c3551909f | ||
|
|
2075f3c717 | ||
|
|
d08381850d | ||
|
|
af2fd78348 | ||
|
|
60b9069a60 | ||
|
|
472e15ab0a | ||
|
|
bdddb945f0 | ||
|
|
615038ef38 | ||
|
|
ef661e52e7 | ||
|
|
bd52f0b004 | ||
|
|
8ec90d3b40 | ||
|
|
2aee09d441 | ||
|
|
35a6095d30 | ||
|
|
23a251aa77 | ||
|
|
48852f0c3f | ||
|
|
42ffe87bf5 | ||
|
|
2ba61fab9d | ||
|
|
1fc634214f | ||
|
|
cec35683f4 | ||
|
|
d4b2b768d3 | ||
|
|
a71226e995 | ||
|
|
3cec08c734 | ||
|
|
cccc72d0d8 | ||
|
|
bf19f13d4c | ||
|
|
0d7d8ddee2 | ||
|
|
de6a547272 | ||
|
|
2e1c798c6e | ||
|
|
26afd63e39 | ||
|
|
f8ef88362d | ||
|
|
ae445c8ece | ||
|
|
351bc544ee | ||
|
|
5dfe0c237f | ||
|
|
3b628bed45 | ||
|
|
a081b72916 | ||
|
|
44c1e8ce69 | ||
|
|
d52c16fbba | ||
|
|
2351ced921 | ||
|
|
afef8ff4a3 | ||
|
|
f9da801f06 | ||
|
|
0c3e7be420 | ||
|
|
43420f02f2 | ||
|
|
47b1b7f519 | ||
|
|
91d72c0265 | ||
|
|
5a98b9c3fd | ||
|
|
fd3b48ba43 | ||
|
|
e03ee00e61 | ||
|
|
685f38e6a0 | ||
|
|
2641a34a1e | ||
|
|
59bf8d0a45 | ||
|
|
b8f255cc50 | ||
|
|
fae67be8c8 | ||
|
|
230d822fce | ||
|
|
5088362430 | ||
|
|
970d2d1f42 | ||
|
|
c786d4e0ab | ||
|
|
dcb130c1c6 | ||
|
|
39d70f17b3 | ||
|
|
b7443be756 | ||
|
|
f75d0af6df | ||
|
|
420957ecb7 | ||
|
|
fde61ae0d6 | ||
|
|
644694a9f2 | ||
|
|
05c022c3f0 | ||
|
|
619742de4e | ||
|
|
6294079ce3 | ||
|
|
35a59fc400 | ||
|
|
0180de5490 | ||
|
|
a26ae1a9b3 | ||
|
|
dd7495a04c | ||
|
|
a59236f4ae | ||
|
|
ab23e01ef8 | ||
|
|
a52d923f79 | ||
|
|
5c541fcc03 | ||
|
|
afba8b58a3 | ||
|
|
2f755de206 | ||
|
|
06506d2793 | ||
|
|
11a66b79b1 | ||
|
|
782bfd23ad | ||
|
|
d3625c1b72 | ||
|
|
87ec999053 | ||
|
|
5e074d2bef | ||
|
|
bbc12bb026 | ||
|
|
9b15d1dcd1 | ||
|
|
fa38bf747a | ||
|
|
a03c22cbac | ||
|
|
e51f77d30e | ||
|
|
577394f167 | ||
|
|
c67af83de4 | ||
|
|
7e8014dd2e | ||
|
|
4600f4d9f2 | ||
|
|
bbd2c120f8 | ||
|
|
1036fcedd7 | ||
|
|
47121d31d1 | ||
|
|
5c9414656b | ||
|
|
7a7f0e34ea | ||
|
|
ec2f825ceb | ||
|
|
5bdd249557 | ||
|
|
8261a50365 | ||
|
|
a5e8665870 | ||
|
|
01b3db39c4 | ||
|
|
c989362875 | ||
|
|
430cd13e09 | ||
|
|
78a3724efe | ||
|
|
6d23c1baf5 | ||
|
|
1d4d1e207e | ||
|
|
3cc5199e80 | ||
|
|
f350dac237 | ||
|
|
ee4349fe8a | ||
|
|
96b755d2c6 | ||
|
|
6b459ee78f | ||
|
|
82f4694cd2 | ||
|
|
156aa721fe | ||
|
|
81f3e02c7b | ||
|
|
4b42fd270b | ||
|
|
6212595ab7 | ||
|
|
bd353a3f99 | ||
|
|
03a2f5c06e | ||
|
|
e4972852c6 | ||
|
|
ad4cb84a0d | ||
|
|
efc66bd1b9 | ||
|
|
7e7622ceca | ||
|
|
76607c99fd | ||
|
|
75113388f5 | ||
|
|
68f573caba | ||
|
|
7a4193c4d5 | ||
|
|
a923f279ff | ||
|
|
a84b33d013 | ||
|
|
80a512b9be | ||
|
|
ed10104f98 | ||
|
|
fffb70933d | ||
|
|
bb4c79d975 | ||
|
|
281d2df621 | ||
|
|
ac1c6b2286 | ||
|
|
a45ac78274 | ||
|
|
4c4725795c | ||
|
|
907e42e46b | ||
|
|
d4c2693511 | ||
|
|
eef7d65b5c | ||
|
|
bdb3dbe0eb | ||
|
|
61e28302ce | ||
|
|
a56a4070a6 | ||
|
|
69d57b3744 | ||
|
|
424eb4cf14 | ||
|
|
3a06f55db9 | ||
|
|
5fc20600e7 | ||
|
|
4a6f4e1f74 | ||
|
|
216396c94c | ||
|
|
19eb1cab59 | ||
|
|
51ca6e92c7 | ||
|
|
fd9d143269 | ||
|
|
0b9a767d9a | ||
|
|
a90f34d938 | ||
|
|
53a1adca04 | ||
|
|
17b8cfd70c | ||
|
|
8a8f708ff9 | ||
|
|
14dab2515f | ||
|
|
2d8bdae77a | ||
|
|
79ca1ce58c | ||
|
|
40036e6050 | ||
|
|
6c1ccc6bac | ||
|
|
e8960c7398 | ||
|
|
27dd669579 | ||
|
|
8b8472b836 | ||
|
|
b4ed7c925f | ||
|
|
8d699cc9ad | ||
|
|
d63eb47e63 | ||
|
|
0ca766e9c9 | ||
|
|
ad14936cf3 | ||
|
|
55c86afcde | ||
|
|
e0cd10c8ec | ||
|
|
4274321a3f | ||
|
|
9bdebc6bdd | ||
|
|
b4d860282b | ||
|
|
4f089aa68d | ||
|
|
59884e7f81 | ||
|
|
d29d2e8bc4 | ||
|
|
64eb7abf2f | ||
|
|
05dd216ad9 | ||
|
|
2c4c29e31d | ||
|
|
6ad3db7ef9 | ||
|
|
4c80a97202 | ||
|
|
37189ba1f3 | ||
|
|
7ebae8ad8a | ||
|
|
8bca8fab53 | ||
|
|
0d3a33f1ba | ||
|
|
0a2894c582 | ||
|
|
ac6d5eef46 | ||
|
|
f95d777dc2 | ||
|
|
fa71bc6ed6 | ||
|
|
f235cede08 | ||
|
|
991830817e | ||
|
|
929dc7fbb8 | ||
|
|
764b3d2a84 | ||
|
|
a89cc74ba5 | ||
|
|
7daa69db43 | ||
|
|
8c173540e6 | ||
|
|
9297e73b69 | ||
|
|
79e1ccc9a0 | ||
|
|
e275486efe | ||
|
|
7da7c0e16f | ||
|
|
abcf12c3d7 | ||
|
|
a45b8e2689 | ||
|
|
4269884008 | ||
|
|
efd92fb94f | ||
|
|
4cecfb5079 | ||
|
|
84a4f53aa0 | ||
|
|
8daab70725 | ||
|
|
89654f8b00 | ||
|
|
d8173e79e5 | ||
|
|
7591b7418f | ||
|
|
f62c668c09 | ||
|
|
27b81de285 | ||
|
|
cd79cd16ac | ||
|
|
d22dc1fa93 | ||
|
|
d865d64e4d | ||
|
|
28885ed1e0 | ||
|
|
6c1853bdb5 | ||
|
|
7d21e08e7d | ||
|
|
09805d1fd0 | ||
|
|
6817620808 | ||
|
|
cfe5a3c84e | ||
|
|
6167a164ad | ||
|
|
6d6a983b9d | ||
|
|
d0bf865e6b | ||
|
|
7bb05a09d9 | ||
|
|
9d17cd1322 | ||
|
|
c47b3aceaa | ||
|
|
29e5a5959d | ||
|
|
fe2b609446 | ||
|
|
cfd1bd13e1 | ||
|
|
1f2aa2708d | ||
|
|
8ca5449b79 | ||
|
|
54925b27a8 | ||
|
|
a34f017dbd | ||
|
|
5355b671fe | ||
|
|
eea25b1e17 | ||
|
|
196573f49b | ||
|
|
37e369ce46 | ||
|
|
30d29f797e | ||
|
|
a3b117fcb3 | ||
|
|
a7950e02fc | ||
|
|
0491c1888e | ||
|
|
e173186109 | ||
|
|
3f9b8c59e1 | ||
|
|
4f78b1efab | ||
|
|
6ef038d0ca | ||
|
|
4aec3d04d6 | ||
|
|
01dfd023eb | ||
|
|
e60d2ab900 | ||
|
|
b4790334a6 | ||
|
|
4644dd2e46 | ||
|
|
442af20815 | ||
|
|
cb3fd1f0eb | ||
|
|
32a88098b0 | ||
|
|
28b3bc87d4 | ||
|
|
7b07ac9e21 | ||
|
|
a61ddc19d2 | ||
|
|
595ef0b617 | ||
|
|
0ae6470b35 | ||
|
|
d3d051ee72 | ||
|
|
f2d2b1d3e2 | ||
|
|
d47099fa23 | ||
|
|
1f18ccd6d6 | ||
|
|
e900607725 | ||
|
|
3894af4db2 | ||
|
|
dbf3114267 | ||
|
|
bab07fc857 | ||
|
|
2f3e915a3e | ||
|
|
6e3271b6eb | ||
|
|
cdf3db2f5a | ||
|
|
4c507540c8 | ||
|
|
72a6ee1d55 | ||
|
|
4b305a708f | ||
|
|
05c34912df | ||
|
|
ab8e8373c0 | ||
|
|
5a46dfc0c0 | ||
|
|
b32344dbc5 | ||
|
|
342a561d98 | ||
|
|
3d8d3dca09 | ||
|
|
97276b9227 | ||
|
|
a8153a0beb | ||
|
|
6b090e1bc3 | ||
|
|
c5ccf4aa68 | ||
|
|
94a9f0282d | ||
|
|
987399b337 | ||
|
|
eaf0af7fd2 | ||
|
|
2ee699441c | ||
|
|
62da526d1a | ||
|
|
edaead7584 | ||
|
|
ea02ae5d01 | ||
|
|
92c975d84a | ||
|
|
5d68926e7f | ||
|
|
d9195a90a6 | ||
|
|
ec51249eab | ||
|
|
3e6d0e4977 | ||
|
|
c9bbfa0862 | ||
|
|
3fd0bccc7b | ||
|
|
00d3f59471 | ||
|
|
996b4030a6 | ||
|
|
826966441a | ||
|
|
e21249dd32 | ||
|
|
2089463f86 | ||
|
|
4c7829876c | ||
|
|
980b6013f2 | ||
|
|
a57edc829f | ||
|
|
074c68d940 | ||
|
|
bd9cb1a141 | ||
|
|
70fc42aa39 | ||
|
|
9ec2db667b | ||
|
|
0a21a0a87d | ||
|
|
2238e8fcff | ||
|
|
978b395b70 | ||
|
|
4520f0bb09 | ||
|
|
48d3c1873c | ||
|
|
97a567ef50 | ||
|
|
8305623791 | ||
|
|
37073ec146 | ||
|
|
439875064e | ||
|
|
ce2983e457 | ||
|
|
180c31ab36 | ||
|
|
509698b17a | ||
|
|
e6509daf8f | ||
|
|
901c1ef36b | ||
|
|
30408fc142 | ||
|
|
3ebfe29d9a | ||
|
|
ed4856b483 | ||
|
|
f3eaf428c2 | ||
|
|
e676f5f4d2 | ||
|
|
444189c670 | ||
|
|
c902d4e51e | ||
|
|
5876e1ae32 | ||
|
|
9d31b75c15 | ||
|
|
9ab1dac38c | ||
|
|
0a2f6c19c2 | ||
|
|
3e908c89ff | ||
|
|
41e7cb3c81 | ||
|
|
c76fa73010 | ||
|
|
1f1abb1bd6 | ||
|
|
50b681215c | ||
|
|
7dd99d5e17 | ||
|
|
7edbd8b3b9 | ||
|
|
e7298aa521 | ||
|
|
7350e2f62e | ||
|
|
255fec2ba7 | ||
|
|
c20169ae18 | ||
|
|
f90c99a276 | ||
|
|
939a9157c2 | ||
|
|
7936998c53 | ||
|
|
f55ab2fd80 | ||
|
|
383dc0057c | ||
|
|
5dbf473ddd | ||
|
|
47534b5ead | ||
|
|
2154b6d5c3 | ||
|
|
9ca685698c | ||
|
|
1d2198563f | ||
|
|
a648e7415d | ||
|
|
9b533396b8 | ||
|
|
0dc4c60aaf | ||
|
|
7a6b600f2c | ||
|
|
993343a2a2 | ||
|
|
b173de6c6d | ||
|
|
8d1f52ac5a | ||
|
|
a579e57ea4 | ||
|
|
0a07cec9c4 | ||
|
|
303d39f367 | ||
|
|
5fb3c59489 | ||
|
|
7c34eeb982 | ||
|
|
603ff87b50 | ||
|
|
b531fc1cbc | ||
|
|
2d13cb7dc8 | ||
|
|
f94af21484 | ||
|
|
cac35f147f | ||
|
|
a7a7f4753c | ||
|
|
bed6fc9a70 | ||
|
|
ac673555c9 | ||
|
|
0096eb9e38 | ||
|
|
367c63a9aa | ||
|
|
2bda9d5f42 | ||
|
|
dcd89faa28 | ||
|
|
b0c3ff84c9 | ||
|
|
da9d584dd3 | ||
|
|
f3dff053d3 | ||
|
|
9903912bd7 | ||
|
|
a26fc359ac | ||
|
|
857e0bb7a0 | ||
|
|
eed58af6ee | ||
|
|
d37783ef0f | ||
|
|
79a563cf66 | ||
|
|
56f43fb67f | ||
|
|
9786d63804 | ||
|
|
c69a1d9f40 | ||
|
|
b6c6cc88bc | ||
|
|
dc8b69ab50 | ||
|
|
cb0660e4a6 | ||
|
|
a89674ccfe | ||
|
|
3b49f7829e | ||
|
|
bd7d615ef6 | ||
|
|
18c342e2be | ||
|
|
e5cdcc1e81 | ||
|
|
f7d2800f77 | ||
|
|
d35317273d | ||
|
|
b6776c47ad | ||
|
|
abaa2b2dea | ||
|
|
6120f8d613 | ||
|
|
4b12c49b6e | ||
|
|
cea173a53a | ||
|
|
ee3e8f8424 | ||
|
|
a70545abd2 | ||
|
|
bd55624470 | ||
|
|
41c282bf85 | ||
|
|
e740d8665f | ||
|
|
ddcd5a7ae4 | ||
|
|
9ccb9779bf | ||
|
|
9672d70853 | ||
|
|
889300c699 | ||
|
|
7495ba7fb4 | ||
|
|
12edac37eb | ||
|
|
0e2e4d722b | ||
|
|
ca3b56c760 | ||
|
|
a1cba7fc6a | ||
|
|
4084f75838 | ||
|
|
5c4108dc08 | ||
|
|
842c365532 | ||
|
|
007e03d248 | ||
|
|
3f81d1872c | ||
|
|
607cffb902 | ||
|
|
ae1fb3cac1 | ||
|
|
2c4114765a | ||
|
|
16e508777a | ||
|
|
a035cab88b | ||
|
|
9c62164512 | ||
|
|
d69a8b79ab | ||
|
|
26fbbd8113 | ||
|
|
86604f4c50 | ||
|
|
7f6621ae74 | ||
|
|
98bb149127 | ||
|
|
d55e5c1769 | ||
|
|
0bbd62a53b | ||
|
|
921b4966e4 | ||
|
|
5c667b7deb | ||
|
|
ef9ab3bc4b | ||
|
|
84c1a8eb39 | ||
|
|
4ae1c575fc | ||
|
|
aafa614520 | ||
|
|
bde34dc342 | ||
|
|
b425f8b22a | ||
|
|
969336248c | ||
|
|
003a6b0bb1 | ||
|
|
916782edba | ||
|
|
ad6d325cc8 | ||
|
|
03b1a84f98 | ||
|
|
647e7ec49f | ||
|
|
39e7d102bd | ||
|
|
fae7fc986e | ||
|
|
a6e6f8278d | ||
|
|
3c3c10d843 | ||
|
|
749aa1831a | ||
|
|
8f8d671ea1 | ||
|
|
5238ce2ade | ||
|
|
bbcefa1753 | ||
|
|
a146bbaa86 | ||
|
|
1bf99fd477 | ||
|
|
5d047303a0 | ||
|
|
92b5bd2514 | ||
|
|
606be6f970 | ||
|
|
519f1a9aa5 | ||
|
|
9e585072cd | ||
|
|
09ab671285 | ||
|
|
1e3886e37e | ||
|
|
35f5aa1ea3 | ||
|
|
7ff878bfe1 | ||
|
|
a3b0cc9f14 | ||
|
|
e201f9adf0 | ||
|
|
3e69c3f683 | ||
|
|
6910efe526 | ||
|
|
3e4964ada3 | ||
|
|
e5927f94c6 | ||
|
|
a2b10612c5 | ||
|
|
a386a0b485 | ||
|
|
5f9ef6cf4d | ||
|
|
37d95fe75e | ||
|
|
531805be14 | ||
|
|
d419ffbdab | ||
|
|
ce6aed67d6 | ||
|
|
0ecba4c170 | ||
|
|
6de77f0ebb | ||
|
|
49419ac204 | ||
|
|
5efe04930e | ||
|
|
185cf88534 | ||
|
|
2dca4785e1 | ||
|
|
0db8f2928f | ||
|
|
ce7b13a633 | ||
|
|
2cd9c23ac0 | ||
|
|
2e755c6806 | ||
|
|
59260241cb | ||
|
|
75b548b81e | ||
|
|
8d8ab9add6 | ||
|
|
16c28f1062 | ||
|
|
e9af0abd95 | ||
|
|
fb6fe3c2fa | ||
|
|
7bca61fe2b | ||
|
|
a46a874874 | ||
|
|
acf913f025 | ||
|
|
805dfbe4d3 | ||
|
|
d242c65e99 | ||
|
|
fb112e502b | ||
|
|
0199b29063 | ||
|
|
3f1ca2480c | ||
|
|
dd77bb5632 | ||
|
|
12104c21c6 | ||
|
|
f284823707 | ||
|
|
34d3352d73 | ||
|
|
1776de12ff | ||
|
|
ccca81e2c8 | ||
|
|
a6de175f3c | ||
|
|
eb377781c8 | ||
|
|
e536c859a7 | ||
|
|
2e7c20142c | ||
|
|
a55893930a | ||
|
|
ea75574b82 | ||
|
|
8f7e5297cd | ||
|
|
09432c6450 | ||
|
|
1afbe029b5 | ||
|
|
74995a5ac1 | ||
|
|
d79783f605 | ||
|
|
5fe9e3f8d2 | ||
|
|
f875c8e518 | ||
|
|
80179339e8 | ||
|
|
f3163198a0 | ||
|
|
6a654e4f49 | ||
|
|
0f91feee2a | ||
|
|
f1a0034f19 | ||
|
|
78ec9d8e22 | ||
|
|
b6e5a0f732 | ||
|
|
a697df7de9 | ||
|
|
a728dc5d7f | ||
|
|
7994803d65 | ||
|
|
9b666bdc40 | ||
|
|
27c372e891 | ||
|
|
313727ca5c | ||
|
|
ea21970e5e | ||
|
|
794020921a | ||
|
|
8a389a8ab9 | ||
|
|
defb8d0d6f | ||
|
|
3f89612830 | ||
|
|
0e6eac9375 | ||
|
|
54048802f2 | ||
|
|
fe4b6dc640 | ||
|
|
c08bfa643c | ||
|
|
321f31c0c0 | ||
|
|
17451c5b93 | ||
|
|
67f134a14b | ||
|
|
aea080d6bd | ||
|
|
14c1be25c9 | ||
|
|
bcf82a0830 | ||
|
|
79b00e8040 | ||
|
|
8a935625ec | ||
|
|
efd4e9aeb1 | ||
|
|
3df719baee | ||
|
|
30dac982cc | ||
|
|
bd6b0d3543 | ||
|
|
0d1925abae | ||
|
|
e39176e69a | ||
|
|
9fe3ce6679 | ||
|
|
da4b6ba9d3 | ||
|
|
0e3d8b54de | ||
|
|
79ae61d173 | ||
|
|
d194c2af27 | ||
|
|
f8fa528ad9 | ||
|
|
9470e9efd1 | ||
|
|
483530507c | ||
|
|
70239374d3 | ||
|
|
e9dc3d53e1 | ||
|
|
8883a16f42 | ||
|
|
a47d1ff12e | ||
|
|
a4e644fe14 | ||
|
|
60195d4757 | ||
|
|
b32ce7958e | ||
|
|
9d7e0e0664 | ||
|
|
1d705158ef | ||
|
|
b8d20abc76 | ||
|
|
8a5e8656ee | ||
|
|
9f26e7b30f | ||
|
|
5d32252f2e | ||
|
|
30bbddc96d | ||
|
|
ebf6ee16d2 | ||
|
|
75839b69ce | ||
|
|
7be9db2cc7 | ||
|
|
49fcb988ad | ||
|
|
1c4847f35e | ||
|
|
f341d8bca3 | ||
|
|
723c3f4756 | ||
|
|
befde25d85 | ||
|
|
4987afbf6e | ||
|
|
4bddfb6a31 | ||
|
|
ada9438731 | ||
|
|
c0b947f72e | ||
|
|
66d80f9a78 | ||
|
|
2f710e80e7 | ||
|
|
1681afe65a | ||
|
|
85f7139dfe | ||
|
|
8f59740a5b | ||
|
|
3b3b58bda4 | ||
|
|
fd99df8c2e | ||
|
|
994428eb7f | ||
|
|
20af6120b1 | ||
|
|
7875ecaa5b | ||
|
|
c631cdbaf4 | ||
|
|
81033f55e5 | ||
|
|
4db2d24ed4 | ||
|
|
958d9db0d0 | ||
|
|
59e3d0d84c | ||
|
|
dbb25b7e17 | ||
|
|
6afae3b855 | ||
|
|
2b2e8b1da0 | ||
|
|
57e6863769 | ||
|
|
b0374d52aa | ||
|
|
7b318e411c | ||
|
|
069715fe4a | ||
|
|
b72f1919e9 | ||
|
|
8431e4c1e6 | ||
|
|
888c01282b | ||
|
|
67415e33a5 | ||
|
|
0dcb032b1d | ||
|
|
d55cd787ad | ||
|
|
be20d8cc1e | ||
|
|
e66c7bad24 | ||
|
|
98b39b2f0c | ||
|
|
255939c2a9 | ||
|
|
7e6e038a9b | ||
|
|
d20f0e045b | ||
|
|
31b07d8843 | ||
|
|
1ce9691911 | ||
|
|
86982f6d47 | ||
|
|
4988122ee3 | ||
|
|
a32947e149 | ||
|
|
9387b078c6 | ||
|
|
300ba1bc63 | ||
|
|
c276318790 | ||
|
|
b283011436 | ||
|
|
786e32944e | ||
|
|
7e2a82ee19 | ||
|
|
7c77d6841a | ||
|
|
2e107b888a | ||
|
|
a1b9a84ca7 | ||
|
|
a83105ecb8 | ||
|
|
51baef438a | ||
|
|
9d336a1804 | ||
|
|
430586a68b | ||
|
|
a0b397a74a | ||
|
|
c4144405a8 | ||
|
|
2a1d8d0751 | ||
|
|
6e7259dd83 | ||
|
|
bcb8c4b0fb | ||
|
|
92212a30ae | ||
|
|
fccbdf844a | ||
|
|
013dc576b6 | ||
|
|
6f63a4a369 | ||
|
|
c740781df2 | ||
|
|
0abaa4bc04 | ||
|
|
5d5e316b39 | ||
|
|
53714acd27 | ||
|
|
4317e82a7b | ||
|
|
8d19f1e41b | ||
|
|
b13b12ec6a | ||
|
|
83cd4c6d50 | ||
|
|
2ec26f4357 | ||
|
|
bd18fd5577 | ||
|
|
3a51371834 | ||
|
|
9c060e8c9e | ||
|
|
9e2f9f1322 | ||
|
|
be4460d1b6 | ||
|
|
4d474f5952 | ||
|
|
b3f53fa627 | ||
|
|
8bf819abb9 | ||
|
|
a33db6f055 | ||
|
|
03fe400e9e | ||
|
|
929f3e63fc | ||
|
|
3b9bf5eaa4 | ||
|
|
81b056b8f0 | ||
|
|
2d7ea8d4e7 | ||
|
|
381b741f42 | ||
|
|
9b6edaea4d | ||
|
|
9527ad4f33 | ||
|
|
bf28072f0d | ||
|
|
231f7485fe | ||
|
|
6f75ec3ae2 | ||
|
|
2674fbd03f | ||
|
|
a36bfdd32d | ||
|
|
b75f486e6e | ||
|
|
618465bf80 | ||
|
|
33f4471364 | ||
|
|
7cb5bb98ff | ||
|
|
71a1c2ac08 | ||
|
|
80a1c73652 | ||
|
|
00a16ac50b | ||
|
|
d3155ed8be | ||
|
|
749c41c43c | ||
|
|
ab2a46ff22 | ||
|
|
2c06edba02 | ||
|
|
6b12cd6cc7 | ||
|
|
cb79bbe5ef | ||
|
|
57fa8c1a4b | ||
|
|
f238bc7d40 | ||
|
|
4d13cf2f67 | ||
|
|
e080873ec3 | ||
|
|
db6ee6839a | ||
|
|
74417024b4 | ||
|
|
322dc85e2c | ||
|
|
740305c2ca | ||
|
|
0dc5a8e3a2 | ||
|
|
cbfb8e5a89 | ||
|
|
2c76f90f67 | ||
|
|
32813fc65e | ||
|
|
2ed5ff3c02 | ||
|
|
86144b7816 | ||
|
|
687229dbec | ||
|
|
f911cebae2 | ||
|
|
02d7588e59 | ||
|
|
20cb007f3c | ||
|
|
74f5bb17bb | ||
|
|
acba94baf2 | ||
|
|
6792c829b2 | ||
|
|
0ada6ba25d | ||
|
|
85564d9201 | ||
|
|
489ed6c23f | ||
|
|
f2f2e52abe | ||
|
|
205cd2fce7 | ||
|
|
6c685f89b8 | ||
|
|
4261613316 | ||
|
|
8b72f9b46a | ||
|
|
847e7e2598 | ||
|
|
448971c8ec | ||
|
|
f8519b8d3f | ||
|
|
47892c9866 | ||
|
|
4a4ef2da4b | ||
|
|
d506099869 | ||
|
|
7203737bd5 | ||
|
|
d8a65a6921 | ||
|
|
7f90cfcdac | ||
|
|
7e497ca4c2 | ||
|
|
0448a02c84 | ||
|
|
7bdaafce08 | ||
|
|
1511791dbd | ||
|
|
2f1c212f4a | ||
|
|
8877e86af4 | ||
|
|
d0fb8c789a | ||
|
|
2fa03cdb22 | ||
|
|
78573e02e7 | ||
|
|
f7196f7a15 | ||
|
|
28bb50f205 | ||
|
|
bc006ce1c9 | ||
|
|
41c58b04fc | ||
|
|
e29c8b64f2 | ||
|
|
8bc375f2e7 | ||
|
|
754df74512 | ||
|
|
5b6cc424ff | ||
|
|
f82e69defc | ||
|
|
d00fd6a90a | ||
|
|
4f69b961dc | ||
|
|
0919042321 | ||
|
|
9bfd6e13f3 | ||
|
|
be4715b6d6 | ||
|
|
cbcbc70b91 | ||
|
|
2601acc53a | ||
|
|
8c0dd4398c | ||
|
|
c49cc42997 | ||
|
|
0370c4c9d1 | ||
|
|
150eff28eb | ||
|
|
7d12a2fec9 | ||
|
|
2d54317c2c | ||
|
|
369f011d8a | ||
|
|
385013da68 | ||
|
|
2a5ee75dac | ||
|
|
a5a0aa0e1b | ||
|
|
804942cff5 | ||
|
|
6d43e8882d | ||
|
|
3220469837 | ||
|
|
e4d946fdc9 | ||
|
|
aa309028ea | ||
|
|
f4cdc527c3 | ||
|
|
6a47d60d35 | ||
|
|
e87c1d9210 | ||
|
|
cabd232b3c | ||
|
|
7c6fe8c272 | ||
|
|
c311d9a315 | ||
|
|
244cecd0a7 | ||
|
|
3d1176a9dd | ||
|
|
de62b9441c | ||
|
|
17d80dd8ec | ||
|
|
ec167cedd3 | ||
|
|
38bc7cacae | ||
|
|
cc5a9b5d09 | ||
|
|
e9d00db912 | ||
|
|
ee702d9475 | ||
|
|
1602404d32 | ||
|
|
b416b947ee | ||
|
|
dca79f6b0b | ||
|
|
54f3fa37e6 | ||
|
|
4a14620c16 | ||
|
|
dd8585a1fb | ||
|
|
42c444e3d9 | ||
|
|
cd8078fa4f | ||
|
|
b6deb18e66 | ||
|
|
5a907259ee | ||
|
|
d0bf52444c | ||
|
|
41599bb11b | ||
|
|
4cd0ed7ecb | ||
|
|
06a6f82015 | ||
|
|
26fdac75e3 | ||
|
|
4ca07c8b2c | ||
|
|
21ae793784 | ||
|
|
4ee8207ec1 | ||
|
|
6f0bfdc6bf | ||
|
|
bdf834e40e | ||
|
|
aaac19ad20 | ||
|
|
69522b751a | ||
|
|
bea75566d6 | ||
|
|
20488c6a01 | ||
|
|
809eceb8cb | ||
|
|
df6fd28d24 | ||
|
|
28c01e86e7 | ||
|
|
381750c84d | ||
|
|
15b5e25a1a | ||
|
|
2418f3b44b | ||
|
|
5ffc474fa4 | ||
|
|
1e0b2f6285 | ||
|
|
8953c0af4c | ||
|
|
6bfe6a0035 | ||
|
|
8f8fec39ab | ||
|
|
d29d004f3d | ||
|
|
5a15a29cea | ||
|
|
e57ae3e3ba | ||
|
|
384e9b93f1 | ||
|
|
cc0895bb9d | ||
|
|
dbbf8c0d40 | ||
|
|
70ea30efbd | ||
|
|
41db04eb0e | ||
|
|
e432cd9b4e | ||
|
|
2f3c75db25 | ||
|
|
38ad73cc70 | ||
|
|
497befdf78 | ||
|
|
44ce09be0f | ||
|
|
b1e123aaa1 | ||
|
|
cc669eb347 | ||
|
|
0509c24f31 | ||
|
|
3f3e1581ce | ||
|
|
9f386b003b | ||
|
|
383a2d0520 | ||
|
|
3a66646e09 | ||
|
|
ceeebfcc62 | ||
|
|
bbac4c5847 | ||
|
|
e8aa12a296 | ||
|
|
c93b057ba1 | ||
|
|
2e67007c69 | ||
|
|
465a2c29d5 | ||
|
|
db6963a8a6 | ||
|
|
afbb06eaad | ||
|
|
145e0b7783 | ||
|
|
42a69e7e9d | ||
|
|
aa58bfdb76 | ||
|
|
2810d930b0 | ||
|
|
8dbed47a87 | ||
|
|
9b6276411f | ||
|
|
7aa50530c0 | ||
|
|
d99aba0bcc | ||
|
|
dfd32d1b0e | ||
|
|
1138bbf40e | ||
|
|
bf658af8d0 | ||
|
|
d4f449697f | ||
|
|
04346da7ef | ||
|
|
64c2596979 | ||
|
|
33502e4613 | ||
|
|
d02cd24ebf | ||
|
|
440cacade1 | ||
|
|
6e84469aa2 | ||
|
|
2eca946504 | ||
|
|
a8d6ee6b43 | ||
|
|
e0dafb7ab8 | ||
|
|
5d2f49e950 | ||
|
|
76684f69f5 | ||
|
|
9d1d57d42b | ||
|
|
e9c192f70b | ||
|
|
12ca6125fb | ||
|
|
f96f5efe48 | ||
|
|
5650a26381 | ||
|
|
2122866b50 | ||
|
|
18db2e5c82 | ||
|
|
1627a26bf6 | ||
|
|
21ed53aa6d | ||
|
|
612d23fa63 | ||
|
|
3c6f7dd9c1 | ||
|
|
504f9cf853 | ||
|
|
fd00a74225 | ||
|
|
9c5ec71c19 | ||
|
|
a7bc09312d | ||
|
|
9c863e7795 | ||
|
|
abc067a10b | ||
|
|
6fc2072967 | ||
|
|
9570cb8b28 | ||
|
|
8e58d57ab3 | ||
|
|
7683cfe5c9 | ||
|
|
43e3400468 | ||
|
|
74f31dbaf9 | ||
|
|
b9cba20d84 | ||
|
|
9cdfc0ce8a | ||
|
|
667c4e2afe | ||
|
|
e2147d8b00 | ||
|
|
a7bad34fce | ||
|
|
093b2d96af | ||
|
|
fc01e35a43 | ||
|
|
9e7543a41a | ||
|
|
3c21b8ff5a | ||
|
|
2fc353cd14 | ||
|
|
9d0da3e6b8 | ||
|
|
83dc1de6d6 | ||
|
|
1ed56e388b | ||
|
|
5d088f0283 | ||
|
|
77682973a0 | ||
|
|
288b4029d7 | ||
|
|
0fc702627e | ||
|
|
b2da8f5e9d | ||
|
|
f86eaa78a2 | ||
|
|
6bbf927d81 | ||
|
|
be3d0fe8e1 | ||
|
|
042c81a6b4 | ||
|
|
75097e9485 | ||
|
|
27122a8578 | ||
|
|
3c876d7f6f | ||
|
|
c61d32bc58 | ||
|
|
03aaec04b9 | ||
|
|
744854726c | ||
|
|
a0727a8ea5 | ||
|
|
3be57ffb66 | ||
|
|
085d24447c | ||
|
|
8b212a8dd0 | ||
|
|
1a490cedf5 | ||
|
|
98022f3b96 | ||
|
|
1e0063e574 | ||
|
|
a8d73d5f99 | ||
|
|
500a8d7a8f | ||
|
|
df61ee09bb | ||
|
|
f521257570 | ||
|
|
ddcece66d6 | ||
|
|
a268c0a48d | ||
|
|
77f9251447 | ||
|
|
e8f85ef27f | ||
|
|
6342f5e4b8 | ||
|
|
44712e7efe | ||
|
|
c855bc00d7 | ||
|
|
006ee22435 | ||
|
|
deed04cd46 | ||
|
|
bc34293cac | ||
|
|
cc47df6ee6 | ||
|
|
1b8d7a6de5 | ||
|
|
cfa7844a42 | ||
|
|
c2f8fcb0c4 | ||
|
|
ef8dc97de9 | ||
|
|
710ab32b2f | ||
|
|
87f63c4655 | ||
|
|
adc72571ba | ||
|
|
c57f063dc1 | ||
|
|
511f21931c | ||
|
|
46b845ab01 | ||
|
|
68051bdcdb | ||
|
|
6d5f518855 | ||
|
|
3a7d8415f6 | ||
|
|
68fe267fad | ||
|
|
dd83139760 | ||
|
|
b561de77ab | ||
|
|
1ffbbefca4 | ||
|
|
d692553d02 | ||
|
|
b38e090fe8 | ||
|
|
6db892467c | ||
|
|
330ec999b5 | ||
|
|
a30d2d2506 | ||
|
|
a6b5726cdc | ||
|
|
9f71427fee | ||
|
|
2cc58ad546 | ||
|
|
c3ba10f2e5 | ||
|
|
0ffece7cb8 | ||
|
|
dbfe9b7e55 | ||
|
|
9307ebbaa9 | ||
|
|
2181b0ebce | ||
|
|
ec5e016401 | ||
|
|
513f847f4d | ||
|
|
d5c270b4dc | ||
|
|
522011b92c | ||
|
|
26ac789e57 | ||
|
|
3e07d2cd01 | ||
|
|
922143aacf | ||
|
|
d8cb0dfc9b | ||
|
|
b3bfc51ee8 | ||
|
|
4420dccc60 | ||
|
|
c7b32a5a0e | ||
|
|
493eb5051c | ||
|
|
82a228fa99 | ||
|
|
f80d42e211 | ||
|
|
e52634bd06 | ||
|
|
0bcee8eff2 | ||
|
|
801c8e284d | ||
|
|
96bd405e4f | ||
|
|
745a20d2f3 | ||
|
|
be33a6e14b | ||
|
|
c25279db8c | ||
|
|
bbbf706941 | ||
|
|
c29da31752 | ||
|
|
70aef10e14 | ||
|
|
c9411a1430 | ||
|
|
51cfae280f | ||
|
|
8bf1cc1775 | ||
|
|
02890a528f | ||
|
|
c3063b32fe | ||
|
|
dfb33b09ee | ||
|
|
849bba59bd | ||
|
|
f18be62946 | ||
|
|
dfd5913583 | ||
|
|
85b6185fda | ||
|
|
11564228bf | ||
|
|
a0eb54ef14 | ||
|
|
d4368333e3 | ||
|
|
1d4c69394c | ||
|
|
2c55c22d4a | ||
|
|
2605dff9b7 | ||
|
|
6d03c1a1fb | ||
|
|
f19147b201 | ||
|
|
d81ff11483 | ||
|
|
9ca63e1b55 | ||
|
|
2c1035cba4 | ||
|
|
68c9173353 | ||
|
|
055c0df2a0 | ||
|
|
6aff17a212 | ||
|
|
d40bc6cc4d | ||
|
|
e7b89e1d9a | ||
|
|
091cf1d9d8 | ||
|
|
a46cc5d8ae | ||
|
|
33371a071e | ||
|
|
df43f14093 | ||
|
|
ae801455f2 | ||
|
|
a267fb20b0 | ||
|
|
b46e69efe9 | ||
|
|
f9928acd42 | ||
|
|
b2cc7ae0d7 | ||
|
|
745ae8eaaa | ||
|
|
6b40ae25f8 | ||
|
|
b893d23915 | ||
|
|
346dcac65b | ||
|
|
64079fbd90 | ||
|
|
61954733d7 | ||
|
|
1bb46fa905 | ||
|
|
4d11a55091 | ||
|
|
35c57e6cf2 | ||
|
|
f9f8f0cb50 | ||
|
|
561f6eb784 | ||
|
|
858f7614f9 | ||
|
|
c57d8ef536 | ||
|
|
3b659526f3 | ||
|
|
7e85586313 | ||
|
|
a1ae343139 | ||
|
|
da114ae988 | ||
|
|
53efbdb3b7 | ||
|
|
024565d67c | ||
|
|
0248a50ae3 | ||
|
|
eb6a7b08fa | ||
|
|
a6b11e6f48 | ||
|
|
26e33dddec | ||
|
|
a5f0c83e87 | ||
|
|
3b9f52de18 | ||
|
|
8b29fc7fea | ||
|
|
325ce79bed | ||
|
|
85bbbe835c | ||
|
|
04b9a181dc | ||
|
|
9c3c7a9c77 | ||
|
|
f20ba23640 | ||
|
|
909cd52d56 | ||
|
|
76c63f6a60 | ||
|
|
cabb0b7964 | ||
|
|
497c9e4617 | ||
|
|
674f142eac | ||
|
|
8e6b33b228 | ||
|
|
baebd237e5 | ||
|
|
1486a41363 | ||
|
|
463a56b1c4 | ||
|
|
a4e135eb92 | ||
|
|
1026ebb0eb | ||
|
|
d8f086a840 | ||
|
|
732e1a028b | ||
|
|
8f172e172b | ||
|
|
683ef75162 | ||
|
|
957dc5de16 | ||
|
|
086c2de441 | ||
|
|
e6e7fb2e2a | ||
|
|
bc0077012d | ||
|
|
43bea53b56 | ||
|
|
72245c8631 | ||
|
|
500f14d002 | ||
|
|
b2aaae9f38 | ||
|
|
b52174216e | ||
|
|
a34f152153 | ||
|
|
abd23e5cb4 | ||
|
|
3f12d57f82 | ||
|
|
f49c896e4f | ||
|
|
019fc7a3d5 | ||
|
|
5ef8a88000 | ||
|
|
c6b5ff1934 | ||
|
|
ebdc1880d9 | ||
|
|
f1cf3d3c87 | ||
|
|
8138db1a80 | ||
|
|
c5632a2f5a | ||
|
|
2e7e9cecd8 | ||
|
|
5ce7fcf5ed | ||
|
|
9dee282b83 | ||
|
|
1a6a8841f4 |
2
.gitattributes
vendored
2
.gitattributes
vendored
@@ -1,5 +1,3 @@
|
||||
dist/ merge=ours
|
||||
application/language/**/*.php merge=ours
|
||||
text=auto
|
||||
application/config/config.php ident
|
||||
application/views/partial/footer.php ident
|
||||
|
||||
18
.github/stale.yml
vendored
Normal file
18
.github/stale.yml
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
# Number of days of inactivity before an issue becomes stale
|
||||
daysUntilStale: 30
|
||||
# Number of days of inactivity before a stale issue is closed
|
||||
daysUntilClose: 7
|
||||
# Issues with these labels will never be considered stale
|
||||
exemptLabels:
|
||||
- enhancement
|
||||
- needsowner
|
||||
- bug
|
||||
# Label to use when marking an issue as stale
|
||||
staleLabel: wontfix
|
||||
# Comment to post when marking an issue as stale. Set to `false` to disable
|
||||
markComment: >
|
||||
This issue has been automatically marked as stale because it has not had
|
||||
recent activity. It will be closed if no further activity occurs. Thank you
|
||||
for your contributions.
|
||||
# Comment to post when closing a stale issue. Set to `false` to disable
|
||||
closeComment: false
|
||||
8
.gitignore
vendored
8
.gitignore
vendored
@@ -9,11 +9,13 @@ application/uploads/*
|
||||
public/license/.licenses
|
||||
public/license/bower.LICENSES
|
||||
public/dist
|
||||
generate_langauges.php
|
||||
dist/
|
||||
docs/
|
||||
public/bower_components
|
||||
*.patch
|
||||
patches/
|
||||
translations/
|
||||
.idea/
|
||||
git-svn-diff.py
|
||||
*.bash
|
||||
@@ -29,3 +31,9 @@ vendor/
|
||||
*.~
|
||||
*.log
|
||||
.env
|
||||
package-lock.json
|
||||
auth.json
|
||||
!/docker/.env
|
||||
/docker/data/database/db/*
|
||||
/docker/data/certbot/conf/*
|
||||
/docker/data/ospos/app/*
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
<IfModule mod_rewrite.c>
|
||||
RewriteEngine On
|
||||
RewriteCond %{REQUEST_URI} !^public$
|
||||
RewriteRule ^(.*)$ %{REQUEST_URI}public/ [R=301,L]
|
||||
RewriteCond %{REQUEST_URI} !^/.well-known/acme-challenge [NC]
|
||||
RewriteRule "^(.*)$" "/public/" [R=301,L]
|
||||
</IfModule>
|
||||
|
||||
# disable directory browsing
|
||||
|
||||
26
.travis.yml
26
.travis.yml
@@ -1,35 +1,31 @@
|
||||
sudo: required
|
||||
dist: trusty
|
||||
group: deprecated-2017Q4
|
||||
|
||||
branches:
|
||||
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
|
||||
- curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose
|
||||
- chmod +x docker-compose
|
||||
- sudo mv docker-compose /usr/local/bin
|
||||
- date=`date +%Y%m%d%H%M%S` && branch=${TRAVIS_BRANCH} && rev=`git rev-parse --short=6
|
||||
HEAD` && sed -i "s/\$1/\$1.$date.$branch.$rev/g" deployment.json
|
||||
script:
|
||||
- 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 -v $(pwd):/app jekkos/composer composer install
|
||||
- docker run --rm -v $(pwd):/app jekkos/composer php bin/install.php translations develop
|
||||
- sed -i "s/'\(dev\)'/'$rev'/g" application/config/config.php
|
||||
- docker run --rm -it -v $(pwd):/app -w /app digitallyseamless/nodejs-bower-grunt
|
||||
sh -c "npm install && bower install && grunt package"
|
||||
- docker-compose build
|
||||
- docker-compose -f docker-compose.test.yml up --abort-on-container-exit
|
||||
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'
|
||||
global:
|
||||
- DOCKER_COMPOSE_VERSION=1.21.1
|
||||
- TAG=$(echo ${TRAVIS_BRANCH} | sed s/feature\\///)
|
||||
after_success:
|
||||
- 'docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" && docker tag "opensourcepos_ospos:latest" "jekkos/opensourcepos:$TAG" && docker push "jekkos/opensourcepos:$TAG"'
|
||||
deploy:
|
||||
edge:
|
||||
source: travis-ci/dpl
|
||||
branch: master
|
||||
file: deployment.json
|
||||
provider: bintray
|
||||
skip_cleanup: true
|
||||
|
||||
30
Dockerfile
30
Dockerfile
@@ -1,10 +1,12 @@
|
||||
FROM php:7.0.29-apache
|
||||
FROM php:7.4-apache AS ospos
|
||||
MAINTAINER jekkos
|
||||
|
||||
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
||||
libicu-dev \
|
||||
libgd-dev \
|
||||
openssl
|
||||
|
||||
|
||||
RUN a2enmod rewrite
|
||||
RUN docker-php-ext-install mysqli bcmath intl gd
|
||||
RUN echo "date.timezone = \"\${PHP_TIMEZONE}\"" > /usr/local/etc/php/conf.d/timezone.ini
|
||||
@@ -13,6 +15,28 @@ RUN echo -e “$(hostname -i)\t$(hostname) $(hostname).localhost” >> /etc/host
|
||||
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 /app/application
|
||||
RUN chmod -R 750 /app/public/uploads /app/application/logs && chown -R www-data:www-data /app/public /app/application
|
||||
|
||||
FROM ospos AS ospos_test
|
||||
|
||||
COPY --from=composer /usr/bin/composer /usr/bin/composer
|
||||
|
||||
RUN apt-get install -y libzip-dev wget git
|
||||
RUN wget https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh -O /bin/wait-for-it.sh && chmod +x /bin/wait-for-it.sh
|
||||
RUN docker-php-ext-install zip
|
||||
RUN composer install -d/app
|
||||
RUN php /app/vendor/kenjis/ci-phpunit-test/install.php -a /app/application -p /app/vendor/codeigniter/framework
|
||||
RUN sed -i 's/backupGlobals="true"/backupGlobals="false"/g' /app/application/tests/phpunit.xml
|
||||
RUN sed -i '13,17d' /app/application/tests/controllers/Welcome_test.php
|
||||
WORKDIR /app/application/tests
|
||||
|
||||
CMD ["/app/vendor/phpunit/phpunit/phpunit"]
|
||||
|
||||
FROM ospos AS ospos_dev
|
||||
|
||||
RUN mkdir -p /app/bower_components && ln -s /app/bower_components /var/www/html/bower_components
|
||||
RUN yes | pecl install xdebug \
|
||||
&& echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/xdebug.ini \
|
||||
&& echo "xdebug.remote_enable=on" >> /usr/local/etc/php/conf.d/xdebug.ini \
|
||||
&& echo "xdebug.remote_autostart=off" >> /usr/local/etc/php/conf.d/xdebug.ini
|
||||
|
||||
RUN [ ! -f test/ospos.js ] || sed -i -e "s/\(localhost\)/web/g" test/ospos.js
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
FROM jekkos/opensourcepos:master
|
||||
MAINTAINER jekkos
|
||||
|
||||
RUN mkdir -p /app/bower_components && ln -s /app/bower_components /var/www/html/bower_components
|
||||
RUN yes | pecl install xdebug \
|
||||
&& echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/xdebug.ini \
|
||||
&& echo "xdebug.remote_enable=on" >> /usr/local/etc/php/conf.d/xdebug.ini \
|
||||
&& echo "xdebug.remote_autostart=off" >> /usr/local/etc/php/conf.d/xdebug.ini
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
FROM digitallyseamless/nodejs-bower-grunt:5
|
||||
MAINTAINER jekkos
|
||||
|
||||
# apt-get install curl
|
||||
|
||||
COPY Gruntfile.js .
|
||||
COPY package.json .
|
||||
COPY test .
|
||||
RUN npm install
|
||||
|
||||
CMD ['while ! curl web/index.php | grep username; do sleep 1; done; grunt mochaWebdriver:test']
|
||||
2
FUNDING.yml
Normal file
2
FUNDING.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
github: jekkos
|
||||
custom: ["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=MUN6AEG7NY6H8"]
|
||||
54
Gruntfile.js
54
Gruntfile.js
@@ -1,6 +1,6 @@
|
||||
module.exports = function(grunt) {
|
||||
|
||||
grunt.initConfig({
|
||||
grunt.initConfig({
|
||||
pkg: grunt.file.readJSON('package.json'),
|
||||
wiredep: {
|
||||
task: {
|
||||
@@ -11,7 +11,8 @@ 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", "dist/extensions/sticky-header/bootstrap-table-sticky-header.js", "dist/extensions/sticky-header/bootstrap-table-sticky-header.css"]
|
||||
'bootstrap-table': [ "dist/bootstrap-table.min.js", "dist/bootstrap-table.css", "dist/extensions/export/bootstrap-table-export.min.js", "dist/extensions/mobile/bootstrap-table-mobile.min.js", "dist/extensions/sticky-header/bootstrap-table-sticky-header.min.js", "dist/extensions/sticky-header/bootstrap-table-sticky-header.css"],
|
||||
'chartist-plugin-axistitle': [ "./dist/chartist-plugin-axistitle.min.js"]
|
||||
},
|
||||
dest: {
|
||||
'js': 'tmp/opensourcepos_bower.js',
|
||||
@@ -53,7 +54,7 @@ module.exports = function(grunt) {
|
||||
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/dist/<%= pkg.name %>.min.css': ['tmp/opensourcepos_bower.css', 'public/css/*.css', '!public/css/login.css', '!public/css/invoice_email.css', '!public/css/barcode_font.css', '!public/css/darkly.css']
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -106,7 +107,7 @@ module.exports = function(grunt) {
|
||||
closeTag: '<!-- end css template tags -->',
|
||||
ignorePath: '../../../public/'
|
||||
},
|
||||
src: ['public/css/*.css', '!public/css/login.css', '!public/css/invoice_email.css', '!public/css/barcode_font.css'],
|
||||
src: ['public/css/*.css', '!public/css/login.css', '!public/css/invoice_email.css', '!public/css/barcode_font.css', '!public/css/darkly.css'],
|
||||
dest: 'application/views/partial/header.php',
|
||||
},
|
||||
mincss_header: {
|
||||
@@ -125,7 +126,7 @@ module.exports = function(grunt) {
|
||||
scriptTemplate: '<rel type="text/css" src="{{ path }}"></rel>',
|
||||
openTag: '<!-- start css template tags -->',
|
||||
closeTag: '<!-- end css template tags -->',
|
||||
ignorePath: '../../public/'
|
||||
ignorePath: '../../public/'
|
||||
},
|
||||
src: ['public/css/login.css'],
|
||||
dest: 'application/views/login.php'
|
||||
@@ -145,7 +146,7 @@ module.exports = function(grunt) {
|
||||
scriptTemplate: '<script type="text/javascript" src="{{ path }}"></script>',
|
||||
openTag: '<!-- start minjs template tags -->',
|
||||
closeTag: '<!-- end minjs template tags -->',
|
||||
ignorePath: '../../../public/'
|
||||
ignorePath: '../../../public/'
|
||||
},
|
||||
src: ['public/dist/*min.js'],
|
||||
dest: 'application/views/partial/header.php'
|
||||
@@ -230,23 +231,42 @@ module.exports = function(grunt) {
|
||||
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']}
|
||||
{
|
||||
src: [
|
||||
'public/**',
|
||||
'vendor/**',
|
||||
'application/**',
|
||||
'!/application/tests',
|
||||
'!/public/images/menubar/png/',
|
||||
'!/public/dist/bootswatch/',
|
||||
'/public/dist/bootswatch/*/*.css',
|
||||
'database/**',
|
||||
'*.txt',
|
||||
'*.md',
|
||||
'LICENSE',
|
||||
'docker*',
|
||||
'docker/**',
|
||||
'Dockerfile',
|
||||
'**/.htaccess',
|
||||
'*.csv'
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
require('load-grunt-tasks')(grunt);
|
||||
grunt.loadNpmTasks('grunt-mocha-webdriver');
|
||||
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']);
|
||||
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']);
|
||||
|
||||
};
|
||||
|
||||
121
INSTALL.md
121
INSTALL.md
@@ -1,13 +1,13 @@
|
||||
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.
|
||||
* PHP version 7.2 to 7.4 are supported, PHP version 5.6 and 8.0 are NOT supported. Please note that PHP needs to have `php-gd`, `php-bcmath`, `php-intl`, `php-openssl`, `php-mbstring` and `php-curl` installed and enabled.
|
||||
|
||||
* MySQL 5.5, 5.6 and 5.7 are supported, also MariaDB replacement is supported and apparently offering better performance.
|
||||
* MySQL 5.5, 5.6 and 5.7 are supported, also MariaDB replacement 10.x 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)
|
||||
* 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))
|
||||
* 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.
|
||||
|
||||
@@ -34,54 +34,103 @@ First of all, if you're seeing the message **'system folder missing'** after lau
|
||||
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.
|
||||
From now onwards OSPOS can be deployed using Docker on Linux and Mac, locally or on a host (server).
|
||||
This setup dramatically reduces the number of possible issues as all setup is now done in a Dockerfile.
|
||||
Docker runs natively on Mac and Linux. Please refer to the docker documentation for instructions on how to set it up on your platform.
|
||||
|
||||
* To build and run the image, download the latest build from bintray and issue following commands in a terminal with docker installed
|
||||
Since OSPOS version 3.3.0 the docker installation offers a reverse proxy based on nginx with a (if local) Self signed certificate termination (aka HTTPS connection).
|
||||
Behind the reverse proxy you can access OSPOS using https (port 443) and myPhpAdmin using port 8000.
|
||||
Port 80 (standard http) is not available for OSPOS, it's only available for a cert manager service in case of server installation.
|
||||
|
||||
* To build and run the image, download the latest build from bintray.
|
||||
* Install envsubst from https://github.com/a8m/envsubst on your machine
|
||||
* Issue the following commands in a terminal with docker installed:
|
||||
|
||||
```
|
||||
docker-compose build
|
||||
docker-compose up
|
||||
docker/install-local.sh
|
||||
```
|
||||
|
||||
* If you want to run from the latest git source, then use docker and composer to run the build
|
||||
* When required to renew a certificate say (y)es.
|
||||
* When the script has terminated to run, wait about a minute before connecting to https://127.0.0.1.
|
||||
* The web browser will warn you of a self certificate exception, accept and continue
|
||||
* If you do https://127.0.0.1:8000 (port 8000) instead, you would be able to access a phpMyAdmin service connected to OSPOS MariaDB
|
||||
|
||||
* To stop the docker issue the following command:
|
||||
|
||||
```
|
||||
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
|
||||
docker/uninstall.sh
|
||||
```
|
||||
|
||||
|
||||
Host install using Docker
|
||||
-------------------------
|
||||
|
||||
Since OSPOS version 3.3.0 the docker installation offers a reverse proxy based on nginx with a Letsencrypt TLS certificate termination (aka HTTPS connection).
|
||||
Letsencrypt is a free certificate issuer, requiring a special installation that this docker installation would take care for you.
|
||||
Any Letsencrypt TLS certificate renewal will be managed automatically for you, therefore there is no need to worry about those details.
|
||||
|
||||
Before starting your installation, you would need to edit docker/.env file and configure it to contain the correct MySQL/MariaDB and phpMyAdmin passwords (don't use the defaults!).
|
||||
You will also need to register to Letsencrypt and configure your host domain name, Letsencrypt email address in docker/.env file.
|
||||
The variable STAGING needs to be set to 0 when you are confident your configuration is correct so that Letsencrypt will issue a final proper TLS certificate.
|
||||
|
||||
Follow local install steps, but instead of
|
||||
|
||||
```
|
||||
docker/install-local.sh
|
||||
```
|
||||
|
||||
use
|
||||
|
||||
```
|
||||
docker/install-server.sh
|
||||
```
|
||||
|
||||
Do not use
|
||||
|
||||
```
|
||||
docker/uninstall.sh
|
||||
```
|
||||
|
||||
on live deployments unless you want to tear down everything because all your disk content will be wiped out!
|
||||
|
||||
|
||||
Cloud install
|
||||
-------------
|
||||
|
||||
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.
|
||||
If you choose *DigitalOcean*:
|
||||
[Through this link](https://m.do.co/c/ac38c262507b), you will get a *$100 credit* for a first month. [Check the wiki](https://github.com/opensourcepos/opensourcepos/wiki/Getting-Started-installations) for further instructions on how to install the necessary components.
|
||||
|
||||
|
||||
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.
|
||||
cPanel & SSH Install
|
||||
--------------------
|
||||
|
||||
If you own on a **VPS**, **Dedicated Server**, or **Shared Hosting** running on **cPanel** with **SSH** access:
|
||||
|
||||
You can run our Stand-alone [WS-OSPOS-Installer](https://github.com/WebShells/WS-OSPOS-Installer.git), it will handle:
|
||||
|
||||
|
||||
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.
|
||||
. Database.php config files generation.
|
||||
|
||||
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.
|
||||
. Creation of db User & Password depending on user's input of Dbname, Username, Password, & Hostname ( No need for phpmyadmin )
|
||||
|
||||
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
|
||||
. Imports default Db SQL files in order to run the project.
|
||||
|
||||
More info [on maintaining a docker](https://github.com/opensourcepos/opensourcepos/wiki/Docker-cloud-maintenance) install can be found on the wiki
|
||||
Usage in **(SSH)**:
|
||||
|
||||
git clone https://github.com/WebShells/WS-OSPOS-Installer.git
|
||||
|
||||
chmod +x WS-OSPOS-Installer/Get-POS
|
||||
|
||||
./WS-OSPOS-Installer/Get-POS
|
||||
|
||||
or
|
||||
|
||||
wget https://github.com/WebShells/WS-OSPOS-Installer/archive/master.zip
|
||||
|
||||
unzip -qq master.zip
|
||||
|
||||
chmod +x WS-OSPOS-Installer-master/Get-POS
|
||||
|
||||
./WS-OSPOS-Installer-master/Get-POS
|
||||
|
||||
Answer **DB required questions** and you are ready to run the project on http://localhost/OSPOS/public (localhost to be replaced by the hostname provided during setup).
|
||||
|
||||
36
LICENSE
36
LICENSE
@@ -5,19 +5,26 @@ Copyright (c) 2012 Alain
|
||||
Copyright (c) 2013 Rob Garrison
|
||||
Copyright (c) 2013 Parq
|
||||
Copyright (c) 2013 Ramel
|
||||
Copyright (c) 2013-2018 jekkos
|
||||
Copyright (c) 2015-2018 FrancescoUK (aka daN4cat)
|
||||
Copyright (c) 2013-2021 jekkos
|
||||
Copyright (c) 2015-2021 FrancescoUK (aka daN4cat)
|
||||
Copyright (c) 2015 Aamir Shahzad (aka asakpke), RoshanTech.com
|
||||
Copyright (c) 2015 Toni Haryanto (aka yllumi)
|
||||
Copyright (c) 2016-2017 Ramkrishna Mondal (aka RamkrishnaMondal)
|
||||
Copyright (c) 2016 Rinaldy@dbarber (aka rnld26)
|
||||
Copyright (c) 2016-2017 Jorge Colmenarez (aka jlctmaster), frontuari.com
|
||||
Copyright (c) 2017-2018 Steve Ireland
|
||||
Copyright (c) 2017-2021 Steve Ireland
|
||||
Copyright (c) 2017-2021 objecttothis
|
||||
Copyright (c) 2017-2021 odiea
|
||||
Copyright (c) 2017-2021 WebShells / Shady Sh
|
||||
Copyright (c) 2017 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
|
||||
Copyright (c) 2018 Erasto Marroquin (aka Erastus)
|
||||
Copyright (c) 2018 Nathan Sas (aka nathanzky)
|
||||
Copyright (c) 2018 Emilio Silva (aka emi-silva)
|
||||
Copyright (c) 2019 Loyd Jayme (aka loydjayme25)
|
||||
Copyright (c) 2020 Andriux1990
|
||||
|
||||
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
|
||||
@@ -31,7 +38,26 @@ copies or substantial portions of the Software.
|
||||
|
||||
You cannot claim copyright or ownership of the Software.
|
||||
|
||||
Footer signatures "You are using Open Source Point Of Sale" and/or "Open Source Point Of Sale"
|
||||
Versions ≥ 3.3.2:
|
||||
|
||||
Footer signatures "© 2010 - 2021 · opensourcepos.org · 3.3.3 - 6909c8"
|
||||
In the format of: "© 2010 - Current Year · opensourcepos.org · Version - Commit"
|
||||
|
||||
and/or
|
||||
|
||||
"· opensourcepos.org ·"
|
||||
|
||||
with version, hash and URL link to the official website of the project MUST BE RETAINED,
|
||||
MUST BE VISIBLE IN EVERY PAGE and CANNOT BE MODIFIED.
|
||||
|
||||
Versions < 3.3.2:
|
||||
|
||||
Footer signatures "You are using Open Source Point Of Sale"
|
||||
|
||||
and/or
|
||||
|
||||
"Open Source Point Of Sale"
|
||||
|
||||
with version, hash and URL link to the original distribution of the code MUST BE RETAINED,
|
||||
MUST BE VISIBLE IN EVERY PAGE and CANNOT BE MODIFIED.
|
||||
|
||||
|
||||
61
README.md
61
README.md
@@ -1,9 +1,8 @@
|
||||
[ ](https://bintray.com/jekkos/opensourcepos/opensourcepos/3.3.2/link)
|
||||
[](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=dev)
|
||||
[](https://gemnasium.com/github.com/jekkos/opensourcepos)
|
||||
[](https://gitter.im/opensourcepos?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||
[](https://badge.fury.io/gh/jekkos%2Fopensourcepos)
|
||||
[](http://weblate.jpeelaer.net/engage/ospos/?utm_source=widget)
|
||||
[](http://weblate.jpeelaer.net/engage/ospos/?utm_source=widget)
|
||||
|
||||
|
||||
Introduction
|
||||
@@ -11,11 +10,12 @@ Introduction
|
||||
|
||||
Open Source Point of Sale is a web based point of sale system.
|
||||
The main features are:
|
||||
* Stock management (Items and Kits)
|
||||
* VAT, customer and multi tiers taxation
|
||||
* Stock management (Items and Kits with extensible list of Attributes)
|
||||
* VAT, GST, customer and multi tiers taxation
|
||||
* Sale register with transactions logging
|
||||
* Quotation and invoicing
|
||||
* Expenses logging
|
||||
* Cashup
|
||||
* Receipt and invoice printing and/or emailing
|
||||
* Barcode generation and printing
|
||||
* Suppliers and Customers database
|
||||
@@ -30,17 +30,16 @@ The main features are:
|
||||
* Selectable Boostrap (Bootswatch) based UI theme
|
||||
* Mailchimp integration
|
||||
* reCAPTCHA to protect login page from brute force attacks
|
||||
* GDPR ready
|
||||
|
||||
The software is written in PHP language, it uses MySQL (or MariaDB) as data storage back-end and has a simple but intuitive user interface.
|
||||
|
||||
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 is now based on Bootstrap 3 using Bootswatch themes, and uses CodeIgniter version 3 as framework.
|
||||
It also has improved functionality and security.
|
||||
|
||||
Deployed to a Cloud it's a SaaS (Software as a Service) solution.
|
||||
|
||||
DEMO
|
||||
----
|
||||
DEMO / DEV
|
||||
----------
|
||||
|
||||
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.
|
||||
|
||||
@@ -48,16 +47,20 @@ LOGIN using
|
||||
* username: admin
|
||||
* password: pointofsale
|
||||
|
||||
Beside this we also have a [Dev server](https://dev.opensourcepos.org) that runs the build that was triggered with the last repository's commit.
|
||||
|
||||
In case of any issues, check our status page at [https://status.opensourcepos.org](https://status.opensourcepos.org) to confirm whether there is a sever outage.
|
||||
|
||||
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.
|
||||
Please **refrain from creating issues** about installation problems **before having read the FAQ and went through existing github issues**. We have a build pipeline that checks the sanity of our latest repository commit and in case the application itself is broken then our build will be as well.
|
||||
|
||||
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.
|
||||
|
||||
[Check our wiki](https://github.com/opensourcepos/opensourcepos/wiki/Supported-hardware-datasheet) for info and recommendations on supported receipt printers and barcode scanners.
|
||||
|
||||
License
|
||||
-------
|
||||
@@ -94,6 +97,7 @@ If you like the project, and you are making money out of it in some form, then c
|
||||
|
||||
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=MUN6AEG7NY6H8)
|
||||
|
||||
If you choose to deploy OSPOS in the cloud, you can contribute to the project by using our referral link. [You will get an initial $100 credits](https://m.do.co/c/ac38c262507b) for running OSPOS on a cloud instance with DigitalOcean.
|
||||
|
||||
Language Translations
|
||||
---------------------
|
||||
@@ -109,15 +113,21 @@ 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.
|
||||
Please DO NOT post issues if you have not completed this step.
|
||||
|
||||
Bug reports must follow this schema:
|
||||
- Versions **≥ 3.3.0**:
|
||||
|
||||
Please **Copy** the info under **System Info tab in configuration section** in order to give us the required details.
|
||||
|
||||
- Versions **< 3.2.3**:
|
||||
|
||||
Bug reports must follow the below schema:
|
||||
|
||||
1. Ospos **version string with git commit hash** (see ospos footer)
|
||||
2. OS name and version running your Web Server (e.g. CentOS 6.9, Ubuntu 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)
|
||||
2. OS name and version running your Web Server (e.g. CentOS 6.9, Ubuntu 20, Windows 10)
|
||||
3. Web Server name and version (e.g. Apache 2.4, Nginx 1.12, Nginx 1.13)
|
||||
4. Database name and version (e.g. MySQL 5.6, MySQL 5.7, MariaDB 10.2, MariaDB 10.3)
|
||||
5. PHP version (e.g. 7.2, 7.3, 7.4)
|
||||
6. Language selected in OSPOS (e.g. English, Spanish)
|
||||
7. Any configuration of OSPOS that you changed
|
||||
8. Exact steps to reproduce the issue (test case)
|
||||
@@ -132,14 +142,25 @@ FAQ
|
||||
|
||||
* If you are seeing the message **system folder missing**, then you have cloned the source using git and you need to run a build *first*. Check [INSTALL.md](https://github.com/opensourcepos/opensourcepos/blob/master/INSTALL.md) for instructions or download latest zip file from [bintray](https://bintray.com/jekkos/opensourcepos/opensourcepos/view/files?sort=updated&order=desc#files) instead.
|
||||
|
||||
* If at login time you read "The installation is not correct, check your php.ini file.", please check the error_log in public folder to understand what's wrong and make sure you read the [INSTALL.md](https://github.com/opensourcepos/opensourcepos/blob/master/INSTALL.md).
|
||||
* If at login time you read "The installation is not correct, check your php.ini file.", please check the error_log in public folder to understand what's wrong and make sure you read the [INSTALL.md](https://github.com/opensourcepos/opensourcepos/blob/master/INSTALL.md). To know how to enable error_log, please read the comment in [issue 1770](https://github.com/opensourcepos/opensourcepos/issues/1770#issuecomment-355177943).
|
||||
|
||||
* If you installed your OSPOS under a web server subdir, please edit public/.htaccess and go to the lines with comment `if in web root` and `if in subdir comment above line, uncomment below one and replace <OSPOS path> with your path` and follow the instruction on the second comment line. If you face more issues please read [issue #920](https://github.com/opensourcepos/opensourcepos/issues/920) for more help.
|
||||
|
||||
* Apache server configurations are SysAdmin issues and not strictly related to OSPOS. Please make sure you first can show a "hello world" html page before pointing to OSPOS public directory. Make sure .htaccess is correctly configured.
|
||||
|
||||
* If the avatar pictures are not shown in Items or at Item save time you get an error, please make sure your public and subdirs are assigned to the correct owner and the access permission is set to 755.
|
||||
* If the avatar pictures are not shown in Items or at Item save time you get an error, please make sure your public and subdirs are assigned to the correct owner and the access permission is set to 750.
|
||||
|
||||
* If you install ospos in docker behind a proxy that performs ssloffloading, you can enable the url generated to be https instead of http, by activating the environment variable FORCE_HTTPS = 1.
|
||||
|
||||
* If you have suhosin installed and face an issue with CSRF, please make sure you read [issue #1492](https://github.com/opensourcepos/opensourcepos/issues/1492).
|
||||
|
||||
* PHP 8.0 is not currently supported, see [issue #3051](https://github.com/opensourcepos/opensourcepos/issues/3051).
|
||||
|
||||
* PHP 5.5 and 5.6 are no longer supported due to the fact that they have been deprecated and not safe to use from security point of view.
|
||||
|
||||
Credits
|
||||
-------
|
||||
|JetBrains|Travis CI|
|
||||
|:-:|:-:|
|
||||
||[Travis CI](https://travis-ci.com/images/logos/TravisCI-Full-Color.png)|
|
||||
|Many thanks to [JetBrains](https://www.jetbrains.com/) for providing a free license of [IntelliJ IDEA](https://www.jetbrains.com/idea/) to kindly support the development of OSPOS|Many thanks to [Travis CI](https://travis-ci.org) for providing a free continuous integration service for open source projects.|
|
||||
|
||||
@@ -4,13 +4,13 @@ How to Upgrade
|
||||
2. Make sure you have a copy of application/config/config.php and application/config/database.php
|
||||
3. Remove all directories
|
||||
4. Install the new OSPOS
|
||||
5. Run the database upgrade scripts from database/ dir (check which ones you need according to the version you are upgrading from and only applicable if upgrading from pre 3.0.0)
|
||||
5. (Only applicable if upgrading from pre 3.0.0) Run the database upgrade scripts from database/ dir (check which ones you need according to the version you are upgrading from)
|
||||
6. Take the saved old config.php and upgrade the new config.php with any additional changes you made in the old.
|
||||
Take time to understand if new config rules require some changes (e.g. encryption keys)
|
||||
7. Take the saved old database.php and change the new database.php to contain all the configuration you had in the old setup.
|
||||
Please try not to use the old layout, use the new one and just copy the content of the config variables
|
||||
8. Restore the content of the old uploads/ folder into public/uploads/ one
|
||||
9. Once the new code is in place, database is updated and config files are sorted you are good to start the new OSPOS
|
||||
9. Once the new code is in place, database is manually updated and config files are sorted you are good to start the new OSPOS
|
||||
10. The first login will take longer because OSPOS post 3.0.0 will upgrade automatically to the latest version
|
||||
11. Now you can use OSPOS
|
||||
12. If any issue please check README, FAQ and GitHub issues as somebody else might have had your problem already before creating a new issue
|
||||
|
||||
@@ -1,3 +1,53 @@
|
||||
Version 3.3.3
|
||||
-------------
|
||||
+ PHP 7.4 support
|
||||
+ Set PHP 7.2 to be the minimum level due to older version deprecations
|
||||
+ Added email CC and BCC (see config/email.php)
|
||||
+ Cash rounding to nearest 5 cents
|
||||
+ Updated composer packages and js plugins
|
||||
+ Improved security (CSRF protection)
|
||||
+ Various small improvements and bug fixes
|
||||
|
||||
Version 3.3.2
|
||||
-------------
|
||||
+ Fixed `only_full_group_by` issue with MySQL/MariaDB
|
||||
+ Fixed POS transaction return failure if items are deleted
|
||||
+ Various bug fixes
|
||||
|
||||
Version 3.3.1
|
||||
-------------
|
||||
+ Various bug fixes (please disable `only_full_group_by` option from MySQL/MariaDB to avoid issues)
|
||||
|
||||
Version 3.3.0
|
||||
-------------
|
||||
+ New logo
|
||||
+ Code Igniter 3.1.11 upgrade
|
||||
+ PHP 7.3 support
|
||||
+ Attributes feature (allows extensibility of Items replacing old custom fields)
|
||||
+ India GST Tax support + various Tax support improvements
|
||||
+ Cashup feature
|
||||
+ Temporary items feature
|
||||
+ Fixed Sales Discount
|
||||
+ Supplier category feature
|
||||
+ Improved Items import and csv file generation (to contain additional attributes)
|
||||
+ Improved Docker installation with nginx reverse proxy using Let's encrypt TLS certificate
|
||||
+ Database performance improvements
|
||||
+ Added and Updated translations
|
||||
+ Fixed various reports issues
|
||||
+ Fixed rounding issues
|
||||
+ Fixed CSRF issues
|
||||
+ Fixed database upgrade script issues
|
||||
+ Various bug fixes
|
||||
|
||||
Version 3.2.3
|
||||
-------------
|
||||
+ Further revert of CSRF change causing regression
|
||||
+ Code Igniter 3.1.9 upgrade
|
||||
|
||||
Version 3.2.2
|
||||
-------------
|
||||
+ Revert CSRF change causing regression
|
||||
|
||||
Version 3.2.1
|
||||
-------------
|
||||
+ Support for GDPR
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
CI_ENV="development"
|
||||
#CI_ENV="production"
|
||||
|
||||
#Database Settings
|
||||
MYSQL_HOST_NAME="localhost"
|
||||
MYSQL_USERNAME=""
|
||||
MYSQL_PASSWORD=""
|
||||
MYSQL_DB_NAME=""
|
||||
MYSQL_USERNAME="admin"
|
||||
MYSQL_PASSWORD="pointofsale"
|
||||
MYSQL_DB_NAME="ospos"
|
||||
|
||||
@@ -89,7 +89,7 @@ $autoload['drivers'] = array();
|
||||
|
|
||||
| $autoload['helper'] = array('url', 'file');
|
||||
*/
|
||||
$autoload['helper'] = array('form', 'url', 'tabular', 'text', 'locale', 'html', 'download', 'directory', 'migration');
|
||||
$autoload['helper'] = array('form', 'url', 'tabular', 'text', 'locale', 'html', 'download', 'directory', 'migration', 'importfile');
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
@@ -132,4 +132,32 @@ $autoload['language'] = array();
|
||||
|
|
||||
| $autoload['model'] = array('first_model' => 'first');
|
||||
*/
|
||||
$autoload['model'] = array('Appconfig', 'Person', 'Customer', 'Employee', 'Module', 'Item', 'Item_taxes', 'Sale', 'Supplier', 'Inventory', 'Receiving', 'Giftcard', 'Item_kit', 'Item_kit_items', 'Stock_location', 'Item_quantity', 'Dinner_table', 'Customer_rewards', 'Rewards', 'Tax', 'Expense_category', 'Expense' );
|
||||
$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',
|
||||
'Expense_category',
|
||||
'Expense',
|
||||
'Cashup',
|
||||
'Attribute',
|
||||
'Tax',
|
||||
'Tax_category',
|
||||
'Tax_code',
|
||||
'Tax_jurisdiction'
|
||||
);
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
|
||||
|
|
||||
*/
|
||||
$config['application_version'] = '3.2.1';
|
||||
$config['application_version'] = '3.3.3';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@@ -19,7 +19,7 @@ $config['application_version'] = '3.2.1';
|
||||
|
|
||||
|
|
||||
*/
|
||||
$config['commit_sha1'] = '$Id $';
|
||||
$config['commit_sha1'] = 'dev';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@@ -65,8 +65,8 @@ $config['db_log_enabled'] = FALSE;
|
||||
| a PHP script and you can easily do that on your own.
|
||||
|
|
||||
*/
|
||||
$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || isset($_ENV['FORCE_HTTPS'])) ? 'https' : 'http';
|
||||
$config['base_url'] .= '://' . $_SERVER['HTTP_HOST'];
|
||||
$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_ENV['FORCE_HTTPS']) && $_ENV['FORCE_HTTPS'] == 'true')) ? 'https' : 'http';
|
||||
$config['base_url'] .= '://' . ((isset($_SERVER['HTTP_HOST'])) ? $_SERVER['HTTP_HOST'] : 'localhost') ;
|
||||
$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']);
|
||||
|
||||
/*
|
||||
@@ -294,7 +294,7 @@ $config['log_file_extension'] = '';
|
||||
| IMPORTANT: This MUST be an integer (no quotes) and you MUST use octal
|
||||
| integer notation (i.e. 0700, 0644, etc.)
|
||||
*/
|
||||
$config['log_file_permissions'] = 0644;
|
||||
$config['log_file_permissions'] = 0640;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@@ -437,8 +437,8 @@ $config['sess_regenerate_destroy'] = FALSE;
|
||||
$config['cookie_prefix'] = '';
|
||||
$config['cookie_domain'] = '';
|
||||
$config['cookie_path'] = '/';
|
||||
$config['cookie_secure'] = FALSE;
|
||||
$config['cookie_httponly'] = FALSE;
|
||||
$config['cookie_secure'] = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on';
|
||||
$config['cookie_httponly'] = TRUE;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
||||
@@ -83,3 +83,64 @@ defined('EXIT_USER_INPUT') OR define('EXIT_USER_INPUT', 7); // invalid user
|
||||
defined('EXIT_DATABASE') OR define('EXIT_DATABASE', 8); // database error
|
||||
defined('EXIT__AUTO_MIN') OR define('EXIT__AUTO_MIN', 9); // lowest automatically-assigned error code
|
||||
defined('EXIT__AUTO_MAX') OR define('EXIT__AUTO_MAX', 125); // highest automatically-assigned error code
|
||||
|
||||
/*
|
||||
| Attribute Related Constants.
|
||||
*/
|
||||
define('GROUP', 'GROUP');
|
||||
define('DROPDOWN', 'DROPDOWN');
|
||||
define('DECIMAL', 'DECIMAL');
|
||||
define('DATE', 'DATE');
|
||||
define('TEXT', 'TEXT');
|
||||
define('CHECKBOX', 'CHECKBOX');
|
||||
define('NO_DEFINITION_ID', 0);
|
||||
define('CATEGORY_DEFINITION_ID', -1);
|
||||
|
||||
|
||||
const DEFINITION_TYPES = [GROUP, DROPDOWN, DECIMAL, TEXT, DATE, CHECKBOX];
|
||||
|
||||
|
||||
/*
|
||||
| Item Related Constants.
|
||||
*/
|
||||
define('HAS_STOCK', 0);
|
||||
define('HAS_NO_STOCK', 1);
|
||||
|
||||
define('ITEM', 0);
|
||||
define('ITEM_KIT', 1);
|
||||
define('ITEM_AMOUNT_ENTRY', 2);
|
||||
define('ITEM_TEMP', 3);
|
||||
|
||||
define('PRINT_ALL', 0);
|
||||
define('PRINT_PRICED', 1);
|
||||
define('PRINT_KIT', 2);
|
||||
|
||||
define('PRINT_YES', 0);
|
||||
define('PRINT_NO', 1);
|
||||
|
||||
define('PRICE_ALL', 0);
|
||||
define('PRICE_KIT', 1);
|
||||
define('PRICE_KIT_ITEMS', 2);
|
||||
|
||||
define('PRICE_OPTION_ALL', 0);
|
||||
define('PRICE_OPTION_KIT', 1);
|
||||
define('PRICE_OPTION_KIT_STOCK', 2);
|
||||
|
||||
define('NAME_SEPARATOR', ' | ');
|
||||
|
||||
/*
|
||||
| Sale Related Constants.
|
||||
*/
|
||||
define('COMPLETED', 0);
|
||||
define('SUSPENDED', 1);
|
||||
define('CANCELED', 2);
|
||||
|
||||
|
||||
define('SALE_TYPE_POS', 0);
|
||||
define('SALE_TYPE_INVOICE', 1);
|
||||
define('SALE_TYPE_WORK_ORDER', 2);
|
||||
define('SALE_TYPE_QUOTE', 3);
|
||||
define('SALE_TYPE_RETURN', 4);
|
||||
|
||||
define('PERCENT', 0);
|
||||
define('FIXED', 1);
|
||||
|
||||
10
application/config/email.php
Normal file
10
application/config/email.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
$config['default_email_address'] = "";
|
||||
$config['default_cc_address'] = '';
|
||||
$config['default_sender_name'] = "";
|
||||
$config['default_sender_address'] = "";
|
||||
$config['default_bounce_address'] = "";
|
||||
$config['charset'] = 'utf-8';
|
||||
$config['mailtype'] = 'html';
|
||||
$config['wordwrap'] = FALSE;
|
||||
|
||||
@@ -27,7 +27,7 @@ $hook['post_controller'] = array(
|
||||
);
|
||||
|
||||
$hook['pre_system'] = function() {
|
||||
$config_path = APPPATH . 'config/';
|
||||
$config_path = APPPATH . (ENVIRONMENT == 'testing') ? 'tests/' : 'config/';
|
||||
try {
|
||||
$dotenv = new Dotenv\Dotenv($config_path);
|
||||
$dotenv->overload();
|
||||
|
||||
@@ -69,7 +69,7 @@ $config['migration_auto_latest'] = FALSE;
|
||||
| be upgraded / downgraded to.
|
||||
|
|
||||
*/
|
||||
$config['migration_version'] = 20171126100000;
|
||||
$config['migration_version'] = 20180225100000;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
||||
@@ -60,25 +60,28 @@ $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_payments'] = 'reports/date_input_only';
|
||||
$route['reports/summary_discounts'] = 'reports/summary_discounts_input';
|
||||
$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_summary_discounts'] = 'reports/summary_discounts_input';
|
||||
$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';
|
||||
|
||||
$route['reports/(detailed_sales)/([^/]+)/([^/]+)/([^/]+)'] = 'reports/$1/$2/$3$/$4';
|
||||
$route['reports/(detailed_:any)/([^/]+)/([^/]+)/([^/]+)'] = 'reports/$1/$2/$3/$4';
|
||||
$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['reports/specific_supplier'] = 'reports/specific_supplier_input';
|
||||
|
||||
$route['404_override'] = '';
|
||||
$route['translate_uri_dashes'] = FALSE;
|
||||
|
||||
184
application/controllers/Attributes.php
Normal file
184
application/controllers/Attributes.php
Normal file
@@ -0,0 +1,184 @@
|
||||
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
require_once("Secure_Controller.php");
|
||||
|
||||
class Attributes extends Secure_Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct('attributes');
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
$data['table_headers'] = $this->xss_clean(get_attribute_definition_manage_table_headers());
|
||||
|
||||
$this->load->view('attributes/manage', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns customer 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');
|
||||
|
||||
$attributes = $this->Attribute->search($search, $limit, $offset, $sort, $order);
|
||||
$total_rows = $this->Attribute->get_found_rows($search);
|
||||
|
||||
$data_rows = array();
|
||||
foreach($attributes->result() as $attribute)
|
||||
{
|
||||
$attribute->definition_flags = $this->_get_attributes($attribute->definition_flags);
|
||||
$data_rows[] = get_attribute_definition_data_row($attribute, $this);
|
||||
}
|
||||
|
||||
$data_rows = $this->xss_clean($data_rows);
|
||||
|
||||
echo json_encode(array('total' => $total_rows, 'rows' => $data_rows));
|
||||
}
|
||||
|
||||
public function save_attribute_value($attribute_value)
|
||||
{
|
||||
$success = $this->Attribute->save_value(urldecode($attribute_value), $this->input->post('definition_id'), $this->input->post('item_id'), $this->input->post('attribute_id'));
|
||||
|
||||
echo json_encode(array('success' => $success != 0));
|
||||
}
|
||||
|
||||
public function delete_attribute_value($attribute_value)
|
||||
{
|
||||
$success = $this->Attribute->delete_value($attribute_value, $this->input->post('definition_id'));
|
||||
|
||||
echo json_encode(array('success' => $success));
|
||||
}
|
||||
|
||||
public function save_definition($definition_id = NO_DEFINITION_ID)
|
||||
{
|
||||
$definition_flags = 0;
|
||||
|
||||
$flags = (empty($this->input->post('definition_flags'))) ? array() : $this->input->post('definition_flags');
|
||||
|
||||
foreach($flags as $flag)
|
||||
{
|
||||
$definition_flags |= $flag;
|
||||
}
|
||||
|
||||
//Save definition data
|
||||
$definition_data = array(
|
||||
'definition_name' => $this->input->post('definition_name'),
|
||||
'definition_unit' => $this->input->post('definition_unit') != '' ? $this->input->post('definition_unit') : NULL,
|
||||
'definition_flags' => $definition_flags,
|
||||
'definition_fk' => $this->input->post('definition_group') != '' ? $this->input->post('definition_group') : NULL
|
||||
);
|
||||
|
||||
if ($this->input->post('definition_type') != null)
|
||||
{
|
||||
$definition_data['definition_type'] = DEFINITION_TYPES[$this->input->post('definition_type')];
|
||||
}
|
||||
|
||||
$definition_name = $this->xss_clean($definition_data['definition_name']);
|
||||
|
||||
if($this->Attribute->save_definition($definition_data, $definition_id))
|
||||
{
|
||||
//New definition
|
||||
if($definition_id == 0)
|
||||
{
|
||||
$definition_values = json_decode($this->input->post('definition_values'));
|
||||
|
||||
foreach($definition_values as $definition_value)
|
||||
{
|
||||
$this->Attribute->save_value($definition_value, $definition_data['definition_id']);
|
||||
}
|
||||
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('attributes_definition_successful_adding').' '.
|
||||
$definition_name, 'id' => $definition_data['definition_id']));
|
||||
}
|
||||
//Existing definition
|
||||
else
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('attributes_definition_successful_updating').' '.
|
||||
$definition_name, 'id' => $definition_id));
|
||||
}
|
||||
}
|
||||
//Failure
|
||||
else
|
||||
{
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('attributes_definition_error_adding_updating', $definition_name), 'id' => -1));
|
||||
}
|
||||
}
|
||||
|
||||
public function suggest_attribute($definition_id)
|
||||
{
|
||||
$suggestions = $this->xss_clean($this->Attribute->get_suggestions($definition_id, $this->input->get('term')));
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
|
||||
public function get_row($row_id)
|
||||
{
|
||||
$attribute_definition_info = $this->Attribute->get_info($row_id);
|
||||
$attribute_definition_info->definition_flags = $this->_get_attributes($attribute_definition_info->definition_flags);
|
||||
$data_row = $this->xss_clean(get_attribute_definition_data_row($attribute_definition_info));
|
||||
|
||||
echo json_encode($data_row);
|
||||
}
|
||||
|
||||
private function _get_attributes($definition_flags = 0)
|
||||
{
|
||||
$definition_flag_names = array();
|
||||
foreach (Attribute::get_definition_flags() as $id => $term)
|
||||
{
|
||||
if ($id & $definition_flags)
|
||||
{
|
||||
$definition_flag_names[$id] = $this->lang->line('attributes_' . strtolower($term) . '_visibility');
|
||||
}
|
||||
}
|
||||
return $definition_flag_names;
|
||||
}
|
||||
|
||||
public function view($definition_id = NO_DEFINITION_ID)
|
||||
{
|
||||
$info = $this->Attribute->get_info($definition_id);
|
||||
foreach(get_object_vars($info) as $property => $value)
|
||||
{
|
||||
$info->$property = $this->xss_clean($value);
|
||||
}
|
||||
|
||||
$data['definition_id'] = $definition_id;
|
||||
$data['definition_values'] = $this->Attribute->get_definition_values($definition_id);
|
||||
$data['definition_group'] = $this->Attribute->get_definitions_by_type(GROUP, $definition_id);
|
||||
$data['definition_group'][''] = $this->lang->line('common_none_selected_text');
|
||||
$data['definition_info'] = $info;
|
||||
|
||||
$show_all = Attribute::SHOW_IN_ITEMS | Attribute::SHOW_IN_RECEIVINGS | Attribute::SHOW_IN_SALES;
|
||||
$data['definition_flags'] = $this->_get_attributes($show_all);
|
||||
$selected_flags = $info->definition_flags === '' ? $show_all : $info->definition_flags;
|
||||
$data['selected_definition_flags'] = $this->_get_attributes($selected_flags);
|
||||
|
||||
$this->load->view("attributes/form", $data);
|
||||
}
|
||||
|
||||
public function delete_value($attribute_id)
|
||||
{
|
||||
return $this->Attribute->delete_value($attribute_id);
|
||||
}
|
||||
|
||||
public function delete()
|
||||
{
|
||||
$attributes_to_delete = $this->input->post('ids');
|
||||
|
||||
if($this->Attribute->delete_definition_list($attributes_to_delete))
|
||||
{
|
||||
$message = $this->lang->line('attributes_definition_successful_deleted') . ' ' . count($attributes_to_delete) . ' ' . $this->lang->line('attributes_definition_one_or_multiple');
|
||||
echo json_encode(array('success' => TRUE, 'message' => $message));
|
||||
}
|
||||
else
|
||||
{
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('attributes_definition_cannot_be_deleted')));
|
||||
}
|
||||
}
|
||||
}
|
||||
246
application/controllers/Cashups.php
Normal file
246
application/controllers/Cashups.php
Normal file
@@ -0,0 +1,246 @@
|
||||
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
require_once("Secure_Controller.php");
|
||||
|
||||
class Cashups extends Secure_Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct('cashups');
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
$data['table_headers'] = $this->xss_clean(get_cashups_manage_table_headers());
|
||||
|
||||
// filters that will be loaded in the multiselect dropdown
|
||||
$data['filters'] = array('is_deleted' => $this->lang->line('cashups_is_deleted'));
|
||||
|
||||
$this->load->view('cashups/manage', $data);
|
||||
}
|
||||
|
||||
public function search()
|
||||
{
|
||||
$cash_up = 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'),
|
||||
'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);
|
||||
$cash_ups = $this->Cashup->search($search, $filters, $limit, $offset, $sort, $order);
|
||||
$total_rows = $this->Cashup->get_found_rows($search, $filters);
|
||||
$data_rows = array();
|
||||
foreach($cash_ups->result() as $cash_up)
|
||||
{
|
||||
$data_rows[] = $this->xss_clean(get_cash_up_data_row($cash_up));
|
||||
}
|
||||
|
||||
echo json_encode(array('total' => $total_rows, 'rows' => $data_rows));
|
||||
}
|
||||
|
||||
public function view($cashup_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;
|
||||
}
|
||||
|
||||
$cash_ups_info = $this->Cashup->get_info($cashup_id);
|
||||
|
||||
foreach(get_object_vars($cash_ups_info) as $property => $value)
|
||||
{
|
||||
$cash_ups_info->$property = $this->xss_clean($value);
|
||||
}
|
||||
|
||||
// open cashup
|
||||
if(empty($cash_ups_info->cashup_id))
|
||||
{
|
||||
$cash_ups_info->open_date = date('Y-m-d H:i:s');
|
||||
$cash_ups_info->close_date = $cash_ups_info->open_date;
|
||||
$cash_ups_info->open_employee_id = $this->Employee->get_logged_in_employee_info()->person_id;
|
||||
$cash_ups_info->close_employee_id = $this->Employee->get_logged_in_employee_info()->person_id;
|
||||
}
|
||||
// if all the amounts are null or 0 that means it's a close cashup
|
||||
elseif(floatval($cash_ups_info->closed_amount_cash) == 0 &&
|
||||
floatval($cash_ups_info->closed_amount_due) == 0 &&
|
||||
floatval($cash_ups_info->closed_amount_card) == 0 &&
|
||||
floatval($cash_ups_info->closed_amount_check) == 0)
|
||||
{
|
||||
// set the close date and time to the actual as this is a close session
|
||||
$cash_ups_info->close_date = date('Y-m-d H:i:s');
|
||||
|
||||
// the closed amount starts with the open amount -/+ any trasferred amount
|
||||
$cash_ups_info->closed_amount_cash = $cash_ups_info->open_amount_cash + $cash_ups_info->transfer_amount_cash;
|
||||
|
||||
// if it's date mode only and not date & time truncate the open and end date to date only
|
||||
if(empty($this->config->item('date_or_time_format')))
|
||||
{
|
||||
// search for all the payments given the time range
|
||||
$inputs = array('start_date' => substr($cash_ups_info->open_date, 0, 10), 'end_date' => substr($cash_ups_info->close_date, 0, 10), 'sale_type' => 'complete', 'location_id' => 'all');
|
||||
}
|
||||
else
|
||||
{
|
||||
// search for all the payments given the time range
|
||||
$inputs = array('start_date' => $cash_ups_info->open_date, 'end_date' => $cash_ups_info->close_date, 'sale_type' => 'complete', 'location_id' => 'all');
|
||||
}
|
||||
|
||||
// get all the transactions payment summaries
|
||||
$this->load->model('reports/Summary_payments');
|
||||
$reports_data = $this->Summary_payments->getData($inputs);
|
||||
|
||||
foreach($reports_data as $row)
|
||||
{
|
||||
if($row['trans_group'] == $this->lang->line('reports_trans_payments'))
|
||||
{
|
||||
if($row['trans_type'] == $this->lang->line('sales_cash'))
|
||||
{
|
||||
$cash_ups_info->closed_amount_cash += $this->xss_clean($row['trans_amount']);
|
||||
}
|
||||
elseif($row['trans_type'] == $this->lang->line('sales_due'))
|
||||
{
|
||||
$cash_ups_info->closed_amount_due += $this->xss_clean($row['trans_amount']);
|
||||
}
|
||||
elseif($row['trans_type'] == $this->lang->line('sales_debit') ||
|
||||
$row['trans_type'] == $this->lang->line('sales_credit'))
|
||||
{
|
||||
$cash_ups_info->closed_amount_card += $this->xss_clean($row['trans_amount']);
|
||||
}
|
||||
elseif($row['trans_type'] == $this->lang->line('sales_check'))
|
||||
{
|
||||
$cash_ups_info->closed_amount_check += $this->xss_clean($row['trans_amount']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// lookup expenses paid in cash
|
||||
$filters = array(
|
||||
'only_cash' => TRUE,
|
||||
'only_due' => FALSE,
|
||||
'only_check' => FALSE,
|
||||
'only_credit' => FALSE,
|
||||
'only_debit' => FALSE,
|
||||
'is_deleted' => FALSE);
|
||||
$payments = $this->Expense->get_payments_summary('', array_merge($inputs, $filters));
|
||||
|
||||
foreach($payments as $row)
|
||||
{
|
||||
$cash_ups_info->closed_amount_cash -= $this->xss_clean($row['amount']);
|
||||
}
|
||||
|
||||
$cash_ups_info->closed_amount_total = $this->_calculate_total($cash_ups_info->open_amount_cash, $cash_ups_info->transfer_amount_cash, $cash_ups_info->closed_amount_cash, $cash_ups_info->closed_amount_due, $cash_ups_info->closed_amount_card, $cash_ups_info->closed_amount_check);
|
||||
}
|
||||
|
||||
$data['cash_ups_info'] = $cash_ups_info;
|
||||
|
||||
$this->load->view("cashups/form", $data);
|
||||
}
|
||||
|
||||
public function get_row($row_id)
|
||||
{
|
||||
$cash_ups_info = $this->Cashup->get_info($row_id);
|
||||
$data_row = $this->xss_clean(get_cash_up_data_row($cash_ups_info));
|
||||
|
||||
echo json_encode($data_row);
|
||||
}
|
||||
|
||||
public function save($cashup_id = -1)
|
||||
{
|
||||
$open_date = $this->input->post('open_date');
|
||||
$open_date_formatter = date_create_from_format($this->config->item('dateformat') . ' ' . $this->config->item('timeformat'), $open_date);
|
||||
|
||||
$close_date = $this->input->post('close_date');
|
||||
$close_date_formatter = date_create_from_format($this->config->item('dateformat') . ' ' . $this->config->item('timeformat'), $close_date);
|
||||
|
||||
$cash_up_data = array(
|
||||
'open_date' => $open_date_formatter->format('Y-m-d H:i:s'),
|
||||
'close_date' => $close_date_formatter->format('Y-m-d H:i:s'),
|
||||
'open_amount_cash' => parse_decimals($this->input->post('open_amount_cash')),
|
||||
'transfer_amount_cash' => parse_decimals($this->input->post('transfer_amount_cash')),
|
||||
'closed_amount_cash' => parse_decimals($this->input->post('closed_amount_cash')),
|
||||
'closed_amount_due' => parse_decimals($this->input->post('closed_amount_due')),
|
||||
'closed_amount_card' => parse_decimals($this->input->post('closed_amount_card')),
|
||||
'closed_amount_check' => parse_decimals($this->input->post('closed_amount_check')),
|
||||
'closed_amount_total' => parse_decimals($this->input->post('closed_amount_total')),
|
||||
'note' => $this->input->post('note') != NULL,
|
||||
'description' => $this->input->post('description'),
|
||||
'open_employee_id' => $this->input->post('open_employee_id'),
|
||||
'close_employee_id' => $this->input->post('close_employee_id'),
|
||||
'deleted' => $this->input->post('deleted') != NULL
|
||||
);
|
||||
|
||||
if($this->Cashup->save($cash_up_data, $cashup_id))
|
||||
{
|
||||
$cash_up_data = $this->xss_clean($cash_up_data);
|
||||
|
||||
//New cashup_id
|
||||
if($cashup_id == -1)
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('cashups_successful_adding'), 'id' => $cash_up_data['cashup_id']));
|
||||
}
|
||||
else // Existing Cashup
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('cashups_successful_updating'), 'id' => $cashup_id));
|
||||
}
|
||||
}
|
||||
else//failure
|
||||
{
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('cashups_error_adding_updating'), 'id' => -1));
|
||||
}
|
||||
}
|
||||
|
||||
public function delete()
|
||||
{
|
||||
$cash_ups_to_delete = $this->input->post('ids');
|
||||
|
||||
if($this->Cashup->delete_list($cash_ups_to_delete))
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('cashups_successful_deleted') . ' ' . count($cash_ups_to_delete) . ' ' . $this->lang->line('cashups_one_or_multiple'), 'ids' => $cash_ups_to_delete));
|
||||
}
|
||||
else
|
||||
{
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('cashups_cannot_be_deleted'), 'ids' => $cash_ups_to_delete));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
AJAX call from cashup input form to calculate the total
|
||||
*/
|
||||
public function ajax_cashup_total()
|
||||
{
|
||||
$open_amount_cash = parse_decimals($this->input->post('open_amount_cash'));
|
||||
$transfer_amount_cash = parse_decimals($this->input->post('transfer_amount_cash'));
|
||||
$closed_amount_cash = parse_decimals($this->input->post('closed_amount_cash'));
|
||||
$closed_amount_due = parse_decimals($this->input->post('closed_amount_due'));
|
||||
$closed_amount_card = parse_decimals($this->input->post('closed_amount_card'));
|
||||
$closed_amount_check = parse_decimals($this->input->post('closed_amount_check'));
|
||||
|
||||
$total = $this->_calculate_total($open_amount_cash, $transfer_amount_cash, $closed_amount_due, $closed_amount_cash, $closed_amount_card, $closed_amount_check);
|
||||
|
||||
echo json_encode(array('total' => to_currency_no_money($total)));
|
||||
}
|
||||
|
||||
/*
|
||||
Calculate total
|
||||
*/
|
||||
private function _calculate_total($open_amount_cash, $transfer_amount_cash, $closed_amount_due, $closed_amount_cash, $closed_amount_card, $closed_amount_check)
|
||||
{
|
||||
return ($closed_amount_cash - $open_amount_cash - $transfer_amount_cash + $closed_amount_due + $closed_amount_card + $closed_amount_check);
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -13,8 +13,8 @@ class Config extends Secure_Controller
|
||||
}
|
||||
|
||||
/*
|
||||
* This function loads all the licenses starting with the first one being OSPOS one
|
||||
*/
|
||||
* This function loads all the licenses starting with the first one being OSPOS one
|
||||
*/
|
||||
private function _licenses()
|
||||
{
|
||||
$i = 0;
|
||||
@@ -33,8 +33,7 @@ class Config extends Secure_Controller
|
||||
$license[$i]['text'] = 'LICENSE file must be in OSPOS license directory. You are not allowed to use OSPOS application until the distribution copy of LICENSE file is present.';
|
||||
}
|
||||
|
||||
// read all the files in the dir license
|
||||
$dir = new DirectoryIterator('license');
|
||||
$dir = new DirectoryIterator('license'); // read all the files in the dir license
|
||||
|
||||
foreach($dir as $fileinfo)
|
||||
{
|
||||
@@ -171,8 +170,8 @@ class Config extends Secure_Controller
|
||||
}
|
||||
|
||||
/*
|
||||
* This function loads all the available themes in the dist/bootswatch directory
|
||||
*/
|
||||
* This function loads all the available themes in the dist/bootswatch directory
|
||||
*/
|
||||
private function _themes()
|
||||
{
|
||||
$themes = array();
|
||||
@@ -198,24 +197,36 @@ class Config extends Secure_Controller
|
||||
{
|
||||
$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['invoice_type_options'] = $this->sale_lib->get_invoice_type_options();
|
||||
$data['rounding_options'] = Rounding_mode::get_rounding_options();
|
||||
$data['tax_codes'] = $this->get_tax_code_options();
|
||||
$data['tax_code_options'] = $this->tax_lib->get_tax_code_options();
|
||||
$data['tax_category_options'] = $this->tax_lib->get_tax_category_options();
|
||||
$data['tax_jurisdiction_options'] = $this->tax_lib->get_tax_jurisdiction_options();
|
||||
$data['show_office_group'] = $this->Module->get_show_office_group();
|
||||
$data['currency_code'] = $this->config->item('currency_code');
|
||||
|
||||
$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();
|
||||
//Load General related fields
|
||||
$image_allowed_types = array('jpg','jpeg','gif','svg','webp','bmp','png','tif','tiff');
|
||||
$data['image_allowed_types'] = array_combine($image_allowed_types,$image_allowed_types);
|
||||
|
||||
$data['selected_image_allowed_types'] = explode('|',$this->config->item('image_allowed_types'));
|
||||
|
||||
//Load Integrations Related fields
|
||||
$data['mailchimp'] = array();
|
||||
|
||||
if($this->_check_encryption())
|
||||
{
|
||||
$data['mailchimp']['api_key'] = $this->encryption->decrypt($this->config->item('mailchimp_api_key'));
|
||||
@@ -233,19 +244,6 @@ class Config extends Secure_Controller
|
||||
$this->load->view("configs/manage", $data);
|
||||
}
|
||||
|
||||
public function get_tax_code_options()
|
||||
{
|
||||
$tax_codes = $this->Tax->get_all_tax_codes()->result_array();
|
||||
$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();
|
||||
@@ -285,12 +283,19 @@ class Config extends Secure_Controller
|
||||
{
|
||||
$batch_save_data = array(
|
||||
'theme' => $this->input->post('theme'),
|
||||
'default_sales_discount_type' => $this->input->post('default_sales_discount_type') != NULL,
|
||||
'default_sales_discount' => $this->input->post('default_sales_discount'),
|
||||
'default_receivings_discount_type' => $this->input->post('default_receivings_discount_type') != NULL,
|
||||
'default_receivings_discount' => $this->input->post('default_receivings_discount'),
|
||||
'enforce_privacy' => $this->input->post('enforce_privacy'),
|
||||
'receiving_calculate_average_price' => $this->input->post('receiving_calculate_average_price') != NULL,
|
||||
'lines_per_page' => $this->input->post('lines_per_page'),
|
||||
'notify_horizontal_position' => $this->input->post('notify_horizontal_position'),
|
||||
'notify_vertical_position' => $this->input->post('notify_vertical_position'),
|
||||
'image_max_width' => $this->input->post('image_max_width'),
|
||||
'image_max_height' => $this->input->post('image_max_height'),
|
||||
'image_max_size' => $this->input->post('image_max_size'),
|
||||
'image_allowed_types' => implode('|', $this->input->post('image_allowed_types')),
|
||||
'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'),
|
||||
@@ -299,20 +304,28 @@ class Config extends Secure_Controller
|
||||
'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'),
|
||||
'custom4_name' => $this->input->post('custom4_name'),
|
||||
'custom5_name' => $this->input->post('custom5_name'),
|
||||
'custom6_name' => $this->input->post('custom6_name'),
|
||||
'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')
|
||||
'multi_pack_enabled' => $this->input->post('multi_pack_enabled') != NULL,
|
||||
'include_hsn' => $this->input->post('include_hsn') != NULL,
|
||||
'category_dropdown' => $this->input->post('category_dropdown') != NULL
|
||||
);
|
||||
|
||||
$this->Module->set_show_office_group($this->input->post('show_office_group') != NULL);
|
||||
|
||||
if($batch_save_data['category_dropdown'] == 1)
|
||||
{
|
||||
$definition_data['definition_name'] = 'ospos_category';
|
||||
$definition_data['definition_flags'] = 0;
|
||||
$definition_data['definition_type'] = 'DROPDOWN';
|
||||
$definition_data['definition_id'] = CATEGORY_DEFINITION_ID;
|
||||
$definition_data['deleted'] = 0;
|
||||
|
||||
$this->Attribute->save_definition($definition_data, CATEGORY_DEFINITION_ID);
|
||||
}
|
||||
else if($batch_save_data['category_dropdown'] == NO_DEFINITION_ID)
|
||||
{
|
||||
$this->Attribute->delete_definition(CATEGORY_DEFINITION_ID);
|
||||
}
|
||||
|
||||
$result = $this->Appconfig->batch_save($batch_save_data);
|
||||
$success = $result ? TRUE : FALSE;
|
||||
|
||||
@@ -325,19 +338,35 @@ class Config extends Secure_Controller
|
||||
public function ajax_check_number_locale()
|
||||
{
|
||||
$number_locale = $this->input->post('number_locale');
|
||||
$save_number_locale = $this->input->post('save_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($number_locale != $save_number_locale)
|
||||
{
|
||||
$currency_symbol = $fmt->getSymbol(\NumberFormatter::CURRENCY_SYMBOL);
|
||||
$currency_code = $fmt->getTextAttribute(\NumberFormatter::CURRENCY_CODE);
|
||||
$save_number_locale = $number_locale;
|
||||
}
|
||||
else
|
||||
{
|
||||
$currency_symbol = empty($this->input->post('currency_symbol')) ? $fmt->getSymbol(\NumberFormatter::CURRENCY_SYMBOL) : $this->input->post('currency_symbol');
|
||||
$currency_code = empty($this->input->post('currency_code')) ? $fmt->getTextAttribute(\NumberFormatter::CURRENCY_CODE) : $this->input->post('currency_code');
|
||||
}
|
||||
|
||||
if($this->input->post('thousands_separator') == 'false')
|
||||
{
|
||||
$fmt->setAttribute(\NumberFormatter::GROUPING_SEPARATOR_SYMBOL, '');
|
||||
}
|
||||
|
||||
$fmt->setSymbol(\NumberFormatter::CURRENCY_SYMBOL, $currency_symbol);
|
||||
$number_local_example = $fmt->format(1234567890.12300);
|
||||
|
||||
echo json_encode(array(
|
||||
'success' => $number_local_example != FALSE,
|
||||
'save_number_locale' => $save_number_locale,
|
||||
'number_locale_example' => $number_local_example,
|
||||
'currency_symbol' => $currency_symbol,
|
||||
'thousands_separator' => $fmt->getAttribute(\NumberFormatter::GROUPING_SEPARATOR_SYMBOL) != ''
|
||||
'currency_code' => $currency_code,
|
||||
));
|
||||
}
|
||||
|
||||
@@ -346,12 +375,13 @@ class Config extends Secure_Controller
|
||||
$exploded = explode(":", $this->input->post('language'));
|
||||
$batch_save_data = array(
|
||||
'currency_symbol' => $this->input->post('currency_symbol'),
|
||||
'currency_code' => $this->input->post('currency_code'),
|
||||
'language_code' => $exploded[0],
|
||||
'language' => $exploded[1],
|
||||
'timezone' => $this->input->post('timezone'),
|
||||
'dateformat' => $this->input->post('dateformat'),
|
||||
'timeformat' => $this->input->post('timeformat'),
|
||||
'thousands_separator' => $this->input->post('thousands_separator'),
|
||||
'thousands_separator' => !empty($this->input->post('thousands_separator')),
|
||||
'number_locale' => $this->input->post('number_locale'),
|
||||
'currency_decimals' => $this->input->post('currency_decimals'),
|
||||
'tax_decimals' => $this->input->post('tax_decimals'),
|
||||
@@ -428,8 +458,8 @@ class Config extends Secure_Controller
|
||||
}
|
||||
|
||||
/*
|
||||
* This function fetches all the available lists from Mailchimp for the given API key
|
||||
*/
|
||||
* 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));
|
||||
@@ -452,8 +482,8 @@ class Config extends Secure_Controller
|
||||
}
|
||||
|
||||
/*
|
||||
AJAX call from mailchimp config form to fetch the Mailchimp lists when a valid API key is inserted
|
||||
*/
|
||||
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
|
||||
@@ -548,15 +578,16 @@ class Config extends Secure_Controller
|
||||
{
|
||||
if(strstr($key, 'stock_location'))
|
||||
{
|
||||
$location_id = preg_replace("/.*?_(\d+)$/", "$1", $key);
|
||||
|
||||
// save or update
|
||||
$location_data = array('location_name' => $value);
|
||||
if($this->Stock_location->save($location_data, $location_id))
|
||||
foreach ($value as $location_id => $location_name)
|
||||
{
|
||||
$location_id = $this->Stock_location->get_location_id($value);
|
||||
$not_to_delete[] = $location_id;
|
||||
$this->_clear_session_state();
|
||||
$location_data = array('location_name' => $location_name);
|
||||
if($this->Stock_location->save($location_data, $location_id))
|
||||
{
|
||||
$location_id = $this->Stock_location->get_location_id($location_name);
|
||||
$not_to_delete[] = $location_id;
|
||||
$this->_clear_session_state();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -599,6 +630,7 @@ class Config extends Secure_Controller
|
||||
{
|
||||
$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))
|
||||
@@ -634,85 +666,26 @@ class Config extends Secure_Controller
|
||||
{
|
||||
$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_rate' => parse_tax($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_rate' => parse_tax($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')
|
||||
'use_destination_based_tax' => $this->input->post('use_destination_based_tax') != NULL,
|
||||
'default_tax_code' => $this->input->post('default_tax_code'),
|
||||
'default_tax_category' => $this->input->post('default_tax_category'),
|
||||
'default_tax_jurisdiction' => $this->input->post('default_tax_jurisdiction'),
|
||||
'tax_id' => $this->input->post('tax_id')
|
||||
);
|
||||
|
||||
$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');
|
||||
}
|
||||
$message = $this->lang->line('config_saved_' . ($success ? '' : 'un') . 'successfully');
|
||||
|
||||
echo json_encode(array(
|
||||
'success' => $success,
|
||||
@@ -817,7 +790,8 @@ class Config extends Secure_Controller
|
||||
'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_taxes' => ($this->input->post('receipt_show_taxes') != NULL),
|
||||
'receipt_show_tax_ind' => ($this->input->post('receipt_show_tax_ind') != NULL),
|
||||
'receipt_show_total_discount' => $this->input->post('receipt_show_total_discount') != NULL,
|
||||
'receipt_show_description' => $this->input->post('receipt_show_description') != NULL,
|
||||
'receipt_show_serialnumber' => $this->input->post('receipt_show_serialnumber') != NULL,
|
||||
@@ -843,19 +817,19 @@ class Config extends Secure_Controller
|
||||
{
|
||||
$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'),
|
||||
'line_sequence' => $this->input->post('line_sequence'),
|
||||
'last_used_invoice_number' =>$this->input->post('last_used_invoice_number'),
|
||||
'last_used_quote_number' =>$this->input->post('last_used_quote_number'),
|
||||
'last_used_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')
|
||||
'last_used_work_order_number' => $this->input->post('last_used_work_order_number'),
|
||||
'invoice_type' => $this->input->post('invoice_type')
|
||||
);
|
||||
|
||||
$result = $this->Appconfig->batch_save($batch_save_data);
|
||||
@@ -894,11 +868,11 @@ class Config extends Secure_Controller
|
||||
|
||||
// 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');
|
||||
'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');
|
||||
|
||||
@@ -930,13 +904,14 @@ class Config extends Secure_Controller
|
||||
$result = FALSE;
|
||||
|
||||
// Chmod the file
|
||||
@chmod($config_path, 0777);
|
||||
@chmod($config_path, 0770);
|
||||
|
||||
// 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;
|
||||
|
||||
@@ -944,7 +919,7 @@ class Config extends Secure_Controller
|
||||
}
|
||||
|
||||
// Chmod the file
|
||||
@chmod($config_path, 0444);
|
||||
@chmod($config_path, 0440);
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
@@ -109,8 +109,6 @@ class Customers extends Persons
|
||||
*/
|
||||
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)
|
||||
{
|
||||
@@ -125,9 +123,20 @@ class Customers extends Persons
|
||||
}
|
||||
|
||||
$employee_info = $this->Employee->get_info($info->employee_id);
|
||||
$data['employee'] = $employee_info->first_name . ' ' . $employee_info->last_name;
|
||||
$data['employee'] = $this->xss_clean($employee_info->first_name . ' ' . $employee_info->last_name);
|
||||
|
||||
$tax_code_info = $this->Tax_code->get_info($info->sales_tax_code_id);
|
||||
$tax_code_id = $tax_code_info->tax_code_id;
|
||||
|
||||
if($tax_code_info->tax_code != NULL)
|
||||
{
|
||||
$data['sales_tax_code_label'] = $this->xss_clean($tax_code_info->tax_code . ' ' . $tax_code_info->tax_code_name);
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['sales_tax_code_label'] = '';
|
||||
}
|
||||
|
||||
$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)
|
||||
{
|
||||
@@ -136,13 +145,13 @@ class Customers extends Persons
|
||||
$data['packages'] = $packages;
|
||||
$data['selected_package'] = $info->package_id;
|
||||
|
||||
if($customer_sales_tax_support == '1')
|
||||
if($this->config->item('use_destination_based_tax') == '1')
|
||||
{
|
||||
$data['customer_sales_tax_enabled'] = TRUE;
|
||||
$data['use_destination_based_tax'] = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['customer_sales_tax_enabled'] = FALSE;
|
||||
$data['use_destination_based_tax'] = FALSE;
|
||||
}
|
||||
|
||||
// retrieve the total amount the customer spent so far together with min, max and average values
|
||||
@@ -247,24 +256,17 @@ class Customers extends Persons
|
||||
$customer_data = array(
|
||||
'consent' => $this->input->post('consent') != NULL,
|
||||
'account_number' => $this->input->post('account_number') == '' ? NULL : $this->input->post('account_number'),
|
||||
'tax_id' => $this->input->post('tax_id'),
|
||||
'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'),
|
||||
'discount' => $this->input->post('discount') == '' ? 0.00 : $this->input->post('discount'),
|
||||
'discount_type' => $this->input->post('discount_type') == NULL ? PERCENT : $this->input->post('discount_type'),
|
||||
'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')
|
||||
'employee_id' => $this->input->post('employee_id'),
|
||||
'sales_tax_code_id' => $this->input->post('sales_tax_code_id') == '' ? NULL : $this->input->post('sales_tax_code_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))
|
||||
{
|
||||
// save customer to Mailchimp selected list
|
||||
@@ -345,25 +347,25 @@ class Customers extends Persons
|
||||
}
|
||||
|
||||
/*
|
||||
Customers import from excel spreadsheet
|
||||
Customers import from csv spreadsheet
|
||||
*/
|
||||
public function excel()
|
||||
public function csv()
|
||||
{
|
||||
$name = 'import_customers.csv';
|
||||
$data = file_get_contents('../' . $name);
|
||||
force_download($name, $data);
|
||||
}
|
||||
|
||||
public function excel_import()
|
||||
public function csv_import()
|
||||
{
|
||||
$this->load->view('customers/form_excel_import', NULL);
|
||||
$this->load->view('customers/form_csv_import', NULL);
|
||||
}
|
||||
|
||||
public function do_excel_import()
|
||||
public function do_csv_import()
|
||||
{
|
||||
if($_FILES['file_path']['error'] != UPLOAD_ERR_OK)
|
||||
{
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('customers_excel_import_failed')));
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('customers_csv_import_failed')));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -403,8 +405,9 @@ class Customers extends Persons
|
||||
$customer_data = array(
|
||||
'consent' => $consent,
|
||||
'company_name' => $data[13],
|
||||
'discount_percent' => $data[15],
|
||||
'taxable' => $data[16] == '' ? 0 : 1,
|
||||
'discount' => $data[15],
|
||||
'discount_type' => $data[16],
|
||||
'taxable' => $data[17] == '' ? 0 : 1,
|
||||
'date' => date('Y-m-d H:i:s'),
|
||||
'employee_id' => $this->Employee->get_logged_in_employee_info()->person_id
|
||||
);
|
||||
@@ -443,18 +446,18 @@ class Customers extends Persons
|
||||
|
||||
if(count($failCodes) > 0)
|
||||
{
|
||||
$message = $this->lang->line('customers_excel_import_partially_failed') . ' (' . count($failCodes) . '): ' . implode(', ', $failCodes);
|
||||
$message = $this->lang->line('customers_csv_import_partially_failed') . ' (' . count($failCodes) . '): ' . implode(', ', $failCodes);
|
||||
|
||||
echo json_encode(array('success' => FALSE, 'message' => $message));
|
||||
}
|
||||
else
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('customers_excel_import_success')));
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('customers_csv_import_success')));
|
||||
}
|
||||
}
|
||||
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_csv_import_nodata_wrongformat')));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,6 +35,13 @@ class Employees extends Persons
|
||||
/*
|
||||
Gives search suggestions based on what is being searched for
|
||||
*/
|
||||
public function suggest()
|
||||
{
|
||||
$suggestions = $this->xss_clean($this->Employee->get_search_suggestions($this->input->get('term'), TRUE));
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
|
||||
public function suggest_search()
|
||||
{
|
||||
$suggestions = $this->xss_clean($this->Employee->get_search_suggestions($this->input->post('term')));
|
||||
@@ -69,7 +76,7 @@ class Employees extends Persons
|
||||
foreach($this->Module->get_all_subpermissions()->result() as $permission)
|
||||
{
|
||||
$permission->module_id = $this->xss_clean($permission->module_id);
|
||||
$permission->permission_id = $this->xss_clean($permission->permission_id);
|
||||
$permission->permission_id = str_replace(' ', '_', $this->xss_clean($permission->permission_id));
|
||||
$permission->grant = $this->xss_clean($this->Employee->has_grant($permission->permission_id, $person_info->person_id));
|
||||
|
||||
$permissions[] = $permission;
|
||||
@@ -121,7 +128,7 @@ class Employees extends Persons
|
||||
}
|
||||
|
||||
//Password has been changed OR first time password set
|
||||
if($this->input->post('password') != '')
|
||||
if($this->input->post('password') != '' && ENVIRONMENT != 'testing')
|
||||
{
|
||||
$exploded = explode(":", $this->input->post('language'));
|
||||
$employee_data = array(
|
||||
|
||||
@@ -80,7 +80,7 @@ class Expenses extends Secure_Controller
|
||||
|
||||
$data['expenses_info'] = $this->Expense->get_info($expense_id);
|
||||
|
||||
$data['expense_categories'] = array();
|
||||
$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'];
|
||||
@@ -128,7 +128,7 @@ class Expenses extends Secure_Controller
|
||||
|
||||
$expense_data = array(
|
||||
'date' => $date_formatter->format('Y-m-d H:i:s'),
|
||||
'supplier_name' => $this->input->post('supplier_name'),
|
||||
'supplier_id' => $this->input->post('supplier_id') == '' ? NULL : $this->input->post('supplier_id'),
|
||||
'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')),
|
||||
@@ -159,6 +159,13 @@ class Expenses extends Secure_Controller
|
||||
}
|
||||
}
|
||||
|
||||
public function ajax_check_amount()
|
||||
{
|
||||
$value = $this->input->post();
|
||||
$parsed_value = parse_decimals(array_pop($value));
|
||||
echo json_encode(array('success' => $parsed_value !== FALSE));
|
||||
}
|
||||
|
||||
public function delete()
|
||||
{
|
||||
$expenses_to_delete = $this->input->post('ids');
|
||||
|
||||
@@ -131,7 +131,7 @@ class Giftcards extends Secure_Controller
|
||||
public function ajax_check_number_giftcard()
|
||||
{
|
||||
$parsed_value = parse_decimals($this->input->post('giftcard_amount'));
|
||||
echo json_encode(array('success' => $parsed_value !== FALSE, 'giftcard_amount' => $parsed_value));
|
||||
echo json_encode(array('success' => $parsed_value !== FALSE, 'giftcard_amount' => to_currency_no_money($parsed_value)));
|
||||
}
|
||||
|
||||
public function delete()
|
||||
|
||||
@@ -4,7 +4,7 @@ require_once("Secure_Controller.php");
|
||||
|
||||
class Home extends Secure_Controller
|
||||
{
|
||||
function __construct()
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct(NULL, NULL, 'home');
|
||||
}
|
||||
@@ -20,7 +20,7 @@ class Home extends Secure_Controller
|
||||
}
|
||||
|
||||
/*
|
||||
Loads the change employee password form
|
||||
Load "change employee password" form
|
||||
*/
|
||||
public function change_password($employee_id = -1)
|
||||
{
|
||||
|
||||
@@ -14,10 +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);
|
||||
$kit_item_info = $this->Item->get_info(isset($item_kit->kit_item_id) ? $item_kit->kit_item_id : $item_kit->item_id);
|
||||
|
||||
$item_kit->total_cost_price = 0;
|
||||
$item_kit->total_unit_price = $kit_item_info->unit_price;
|
||||
$item_kit->total_unit_price = (float)$kit_item_info->unit_price;
|
||||
$total_quantity = 0;
|
||||
|
||||
foreach($this->Item_kit_items->get_info($item_kit->item_kit_id) as $item_kit_item)
|
||||
{
|
||||
@@ -32,11 +33,13 @@ class Item_kits extends Secure_Controller
|
||||
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'];
|
||||
$total_quantity += $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);
|
||||
$discount_fraction = bcdiv($item_kit->kit_discount, 100);
|
||||
|
||||
$item_kit->total_unit_price = $item_kit->total_unit_price - round(($item_kit->kit_discount_type == PERCENT)?bcmul($item_kit->total_unit_price, $discount_fraction): $item_kit->kit_discount, totals_decimals(), PHP_ROUND_HALF_UP);
|
||||
|
||||
return $item_kit;
|
||||
}
|
||||
@@ -129,7 +132,8 @@ 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'),
|
||||
'kit_discount' => $this->input->post('kit_discount'),
|
||||
'kit_discount_type' => $this->input->post('kit_discount_type') == NULL ? PERCENT : $this->input->post('kit_discount_type'),
|
||||
'price_option' => $this->input->post('price_option'),
|
||||
'print_option' => $this->input->post('print_option'),
|
||||
'description' => $this->input->post('description')
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -4,6 +4,7 @@ class Login extends CI_Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$this->load->library('migration');
|
||||
if($this->Employee->is_logged_in())
|
||||
{
|
||||
redirect('home');
|
||||
@@ -14,6 +15,7 @@ class Login extends CI_Controller
|
||||
|
||||
$this->form_validation->set_rules('username', 'lang:login_username', 'required|callback_login_check');
|
||||
|
||||
|
||||
if($this->config->item('gcaptcha_enable'))
|
||||
{
|
||||
$this->form_validation->set_rules('g-recaptcha-response', 'lang:login_gcaptcha', 'required|callback_gcaptcha_check');
|
||||
@@ -41,6 +43,13 @@ class Login extends CI_Controller
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (!$this->migration->is_latest())
|
||||
{
|
||||
set_time_limit(3600);
|
||||
// trigger any required upgrade before starting the application
|
||||
$this->migration->latest();
|
||||
}
|
||||
|
||||
if(!$this->Employee->login($username, $password))
|
||||
{
|
||||
$this->form_validation->set_message('login_check', $this->lang->line('login_invalid_username_and_password'));
|
||||
@@ -48,10 +57,6 @@ class Login extends CI_Controller
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// trigger any required upgrade before starting the application
|
||||
$this->load->library('migration');
|
||||
$this->migration->latest();
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ class Receivings extends Secure_Controller
|
||||
parent::__construct('receivings');
|
||||
|
||||
$this->load->library('receiving_lib');
|
||||
$this->load->library('token_lib');
|
||||
$this->load->library('barcode_lib');
|
||||
}
|
||||
|
||||
@@ -90,9 +91,11 @@ class Receivings extends Secure_Controller
|
||||
|
||||
$mode = $this->receiving_lib->get_mode();
|
||||
$item_id_or_number_or_item_kit_or_receipt = $this->input->post('item');
|
||||
$this->barcode_lib->parse_barcode_fields($quantity, $item_id_or_number_or_item_kit_or_receipt);
|
||||
$this->token_lib->parse_barcode($quantity, $price, $item_id_or_number_or_item_kit_or_receipt);
|
||||
$quantity = ($mode == 'receive' || $mode == 'requisition') ? $quantity : -$quantity;
|
||||
$item_location = $this->receiving_lib->get_stock_source();
|
||||
$discount = $this->config->item('default_receivings_discount');
|
||||
$discount_type = $this->config->item('default_receivings_discount_type');
|
||||
|
||||
if($mode == 'return' && $this->Receiving->is_valid_receipt($item_id_or_number_or_item_kit_or_receipt))
|
||||
{
|
||||
@@ -100,9 +103,9 @@ class Receivings extends Secure_Controller
|
||||
}
|
||||
elseif($this->Item_kit->is_valid_item_kit($item_id_or_number_or_item_kit_or_receipt))
|
||||
{
|
||||
$this->receiving_lib->add_item_kit($item_id_or_number_or_item_kit_or_receipt, $item_location);
|
||||
$this->receiving_lib->add_item_kit($item_id_or_number_or_item_kit_or_receipt, $item_location, $discount, $discount_type);
|
||||
}
|
||||
elseif(!$this->receiving_lib->add_item($item_id_or_number_or_item_kit_or_receipt, $quantity, $item_location))
|
||||
elseif(!$this->receiving_lib->add_item($item_id_or_number_or_item_kit_or_receipt, $quantity, $item_location, $discount, $discount_type))
|
||||
{
|
||||
$data['error'] = $this->lang->line('receivings_unable_to_add_item');
|
||||
}
|
||||
@@ -121,13 +124,15 @@ class Receivings extends Secure_Controller
|
||||
$description = $this->input->post('description');
|
||||
$serialnumber = $this->input->post('serialnumber');
|
||||
$price = parse_decimals($this->input->post('price'));
|
||||
$quantity = parse_decimals($this->input->post('quantity'));
|
||||
$quantity = parse_quantity($this->input->post('quantity'));
|
||||
$discount = parse_decimals($this->input->post('discount'));
|
||||
$discount_type = $this->input->post('discount_type');
|
||||
$item_location = $this->input->post('location');
|
||||
$receiving_quantity = $this->input->post('receiving_quantity');
|
||||
|
||||
if($this->form_validation->run() != FALSE)
|
||||
{
|
||||
$this->receiving_lib->edit_item($item_id, $description, $serialnumber, $quantity, $discount, $price);
|
||||
$this->receiving_lib->edit_item($item_id, $description, $serialnumber, $quantity, $discount, $discount_type, $price, $receiving_quantity);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -198,7 +203,7 @@ class Receivings extends Secure_Controller
|
||||
|
||||
$data['cart'] = $this->receiving_lib->get_cart();
|
||||
$data['total'] = $this->receiving_lib->get_total();
|
||||
$data['transaction_time'] = date($this->config->item('dateformat') . ' ' . $this->config->item('timeformat'));
|
||||
$data['transaction_time'] = to_datetime(time());
|
||||
$data['mode'] = $this->receiving_lib->get_mode();
|
||||
$data['comment'] = $this->receiving_lib->get_comment();
|
||||
$data['reference'] = $this->receiving_lib->get_reference();
|
||||
@@ -263,8 +268,8 @@ class Receivings extends Secure_Controller
|
||||
foreach($this->receiving_lib->get_cart() as $item)
|
||||
{
|
||||
$this->receiving_lib->delete_item($item['line']);
|
||||
$this->receiving_lib->add_item($item['item_id'], $item['quantity'], $this->receiving_lib->get_stock_destination());
|
||||
$this->receiving_lib->add_item($item['item_id'], -$item['quantity'], $this->receiving_lib->get_stock_source());
|
||||
$this->receiving_lib->add_item($item['item_id'], $item['quantity'], $this->receiving_lib->get_stock_destination(), $item['discount_type']);
|
||||
$this->receiving_lib->add_item($item['item_id'], -$item['quantity'], $this->receiving_lib->get_stock_source(), $item['discount_type']);
|
||||
}
|
||||
|
||||
$this->complete();
|
||||
@@ -284,7 +289,7 @@ 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['transaction_time'] = date($this->config->item('dateformat') . ' ' . $this->config->item('timeformat'), strtotime($receiving_info['receiving_time']));
|
||||
$data['transaction_time'] = to_datetime(strtotime($receiving_info['receiving_time']));
|
||||
$data['show_stock_locations'] = $this->Stock_location->show_locations('receivings');
|
||||
$data['payment_type'] = $receiving_info['payment_type'];
|
||||
$data['reference'] = $this->receiving_lib->get_reference();
|
||||
@@ -373,15 +378,17 @@ class Receivings extends Secure_Controller
|
||||
$newdate = $this->input->post('date');
|
||||
|
||||
$date_formatter = date_create_from_format($this->config->item('dateformat') . ' ' . $this->config->item('timeformat'), $newdate);
|
||||
$receiving_time = $date_formatter->format('Y-m-d H:i:s');
|
||||
|
||||
$receiving_data = array(
|
||||
'receiving_time' => $date_formatter->format('Y-m-d H:i:s'),
|
||||
'receiving_time' => $receiving_time,
|
||||
'supplier_id' => $this->input->post('supplier_id') ? $this->input->post('supplier_id') : NULL,
|
||||
'employee_id' => $this->input->post('employee_id'),
|
||||
'comment' => $this->input->post('comment'),
|
||||
'reference' => $this->input->post('reference') != '' ? $this->input->post('reference') : NULL
|
||||
);
|
||||
|
||||
|
||||
$this->Inventory->update('RECV '.$receiving_id, ['trans_date' => $receiving_time]);
|
||||
if($this->Receiving->update($receiving_data, $receiving_id))
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('receivings_successfully_updated'), 'id' => $receiving_id));
|
||||
|
||||
@@ -50,7 +50,8 @@ class Reports extends Secure_Controller
|
||||
foreach($report_data as $row)
|
||||
{
|
||||
$tabular_data[] = $this->xss_clean(array(
|
||||
'sale_date' => date($this->config->item('dateformat'), strtotime($row['sale_date'])),
|
||||
'sale_date' => to_date(strtotime($row['sale_date'])),
|
||||
'sales' => to_quantity_decimals($row['sales']),
|
||||
'quantity' => to_quantity_decimals($row['quantity_purchased']),
|
||||
'subtotal' => to_currency($row['subtotal']),
|
||||
'tax' => to_currency_tax($row['tax']),
|
||||
@@ -156,6 +157,7 @@ class Reports extends Secure_Controller
|
||||
{
|
||||
$tabular_data[] = $this->xss_clean(array(
|
||||
'customer_name' => $row['customer'],
|
||||
'sales' => to_quantity_decimals($row['sales']),
|
||||
'quantity' => to_quantity_decimals($row['quantity_purchased']),
|
||||
'subtotal' => to_currency($row['subtotal']),
|
||||
'tax' => to_currency_tax($row['tax']),
|
||||
@@ -228,6 +230,7 @@ class Reports extends Secure_Controller
|
||||
{
|
||||
$tabular_data[] = $this->xss_clean(array(
|
||||
'item_name' => $row['name'],
|
||||
'unit_price' => $row['unit_price'],
|
||||
'quantity' => to_quantity_decimals($row['quantity_purchased']),
|
||||
'subtotal' => to_currency($row['subtotal']),
|
||||
'tax' => to_currency_tax($row['tax']),
|
||||
@@ -264,6 +267,7 @@ class Reports extends Secure_Controller
|
||||
{
|
||||
$tabular_data[] = $this->xss_clean(array(
|
||||
'employee_name' => $row['employee'],
|
||||
'sales' => to_quantity_decimals($row['sales']),
|
||||
'quantity' => to_quantity_decimals($row['quantity_purchased']),
|
||||
'subtotal' => to_currency($row['subtotal']),
|
||||
'tax' => to_currency_tax($row['tax']),
|
||||
@@ -318,11 +322,60 @@ class Reports extends Secure_Controller
|
||||
$this->load->view('reports/tabular', $data);
|
||||
}
|
||||
|
||||
//Summary Discounts report
|
||||
public function summary_discounts($start_date, $end_date, $sale_type, $location_id = 'all')
|
||||
//Summary Sales Taxes report
|
||||
public function summary_sales_taxes($start_date, $end_date, $sale_type, $location_id = 'all')
|
||||
{
|
||||
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'sale_type' => $sale_type, 'location_id' => $location_id);
|
||||
|
||||
$this->load->model('reports/Summary_sales_taxes');
|
||||
$model = $this->Summary_sales_taxes;
|
||||
|
||||
$report_data = $model->getData($inputs);
|
||||
$summary = $this->xss_clean($model->getSummaryData($inputs));
|
||||
|
||||
$tabular_data = array();
|
||||
foreach($report_data as $row)
|
||||
{
|
||||
$tabular_data[] = $this->xss_clean(array(
|
||||
'reporting_authority' => $row['reporting_authority'],
|
||||
'jurisdiction_name' => $row['jurisdiction_name'],
|
||||
'tax_category' => $row['tax_category'],
|
||||
'tax_rate' => $row['tax_rate'],
|
||||
'tax' => to_currency_tax($row['tax'])
|
||||
));
|
||||
}
|
||||
|
||||
$data = array(
|
||||
'title' => $this->lang->line('reports_sales_taxes_summary_report'),
|
||||
'subtitle' => $this->_get_subtitle_report(array('start_date' => $start_date, 'end_date' => $end_date)),
|
||||
'headers' => $this->xss_clean($model->getDataColumns()),
|
||||
'data' => $tabular_data,
|
||||
'summary_data' => $summary
|
||||
);
|
||||
|
||||
$this->load->view('reports/tabular', $data);
|
||||
}
|
||||
|
||||
public function summary_discounts_input()
|
||||
{
|
||||
$data = array();
|
||||
$stock_locations = $data = $this->xss_clean($this->Stock_location->get_allowed_locations('sales'));
|
||||
$stock_locations['all'] = $this->lang->line('reports_all');
|
||||
$data['stock_locations'] = array_reverse($stock_locations, TRUE);
|
||||
$data['mode'] = 'sale';
|
||||
$data['discount_type_options'] = array(
|
||||
'0' => $this->lang->line('reports_discount_percent'),
|
||||
'1'=> $this->lang->line('reports_discount_fixed'));
|
||||
$data['sale_type_options'] = $this->get_sale_type_options();
|
||||
|
||||
$this->load->view('reports/date_input', $data);
|
||||
}
|
||||
|
||||
//Summary Discounts report
|
||||
public function summary_discounts($start_date, $end_date, $sale_type, $location_id = 'all', $discount_type=0)
|
||||
{
|
||||
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'sale_type' => $sale_type, 'location_id' => $location_id,'discount_type'=>$discount_type);
|
||||
|
||||
$this->load->model('reports/Summary_discounts');
|
||||
$model = $this->Summary_discounts;
|
||||
|
||||
@@ -333,7 +386,8 @@ class Reports extends Secure_Controller
|
||||
foreach($report_data as $row)
|
||||
{
|
||||
$tabular_data[] = $this->xss_clean(array(
|
||||
'discount' => $row['discount_percent'],
|
||||
'total' => to_currency($row['total']),
|
||||
'discount' => $row['discount'],
|
||||
'count' => $row['count']
|
||||
));
|
||||
}
|
||||
@@ -350,9 +404,9 @@ class Reports extends Secure_Controller
|
||||
}
|
||||
|
||||
//Summary Payments report
|
||||
public function summary_payments($start_date, $end_date, $sale_type, $location_id = 'all')
|
||||
public function summary_payments($start_date, $end_date)
|
||||
{
|
||||
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'sale_type' => $sale_type, 'location_id' => $location_id);
|
||||
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'sale_type' => 'complete', 'location_id' => 'all');
|
||||
|
||||
$this->load->model('reports/Summary_payments');
|
||||
$model = $this->Summary_payments;
|
||||
@@ -363,11 +417,35 @@ class Reports extends Secure_Controller
|
||||
$tabular_data = array();
|
||||
foreach($report_data as $row)
|
||||
{
|
||||
$tabular_data[] = $this->xss_clean(array(
|
||||
'payment_type' => $row['payment_type'],
|
||||
'report_count' => $row['count'],
|
||||
'amount_due' => to_currency($row['payment_amount'])
|
||||
));
|
||||
if($row['trans_group'] == '<HR>')
|
||||
{
|
||||
$tabular_data[] = array(
|
||||
'trans_group' => '--',
|
||||
'trans_type' => '--',
|
||||
'trans_sales' => '--',
|
||||
'trans_amount' => '--',
|
||||
'trans_payments' => '--',
|
||||
'trans_refunded' => '--',
|
||||
'trans_due' => '--'
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(empty($row['trans_type']))
|
||||
{
|
||||
$row['trans_type'] = $this->lang->line('reports_trans_nopay_sales');
|
||||
}
|
||||
|
||||
$tabular_data[] = $this->xss_clean(array(
|
||||
'trans_group' => $row['trans_group'],
|
||||
'trans_type' => $row['trans_type'],
|
||||
'trans_sales' => $row['trans_sales'],
|
||||
'trans_amount' => to_currency($row['trans_amount']),
|
||||
'trans_payments' => to_currency($row['trans_payments']),
|
||||
'trans_refunded' => to_currency($row['trans_refunded']),
|
||||
'trans_due' => to_currency($row['trans_due'])
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
$data = array(
|
||||
@@ -477,7 +555,7 @@ class Reports extends Secure_Controller
|
||||
{
|
||||
$row = $this->xss_clean($row);
|
||||
|
||||
$date = date($this->config->item('dateformat'), strtotime($row['sale_date']));
|
||||
$date = to_date(strtotime($row['sale_date']));
|
||||
$labels[] = $date;
|
||||
$series[] = array('meta' => $date, 'value' => $row['total']);
|
||||
}
|
||||
@@ -669,6 +747,40 @@ class Reports extends Secure_Controller
|
||||
$this->load->view('reports/graphical', $data);
|
||||
}
|
||||
|
||||
//Graphical summary sales taxes report
|
||||
public function graphical_summary_sales_taxes($start_date, $end_date, $sale_type, $location_id = 'all')
|
||||
{
|
||||
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'sale_type' => $sale_type, 'location_id' => $location_id);
|
||||
|
||||
$this->load->model('reports/Summary_sales_taxes');
|
||||
$model = $this->Summary_sales_taxes;
|
||||
|
||||
$report_data = $model->getData($inputs);
|
||||
$summary = $this->xss_clean($model->getSummaryData($inputs));
|
||||
|
||||
$labels = array();
|
||||
$series = array();
|
||||
foreach($report_data as $row)
|
||||
{
|
||||
$row = $this->xss_clean($row);
|
||||
|
||||
$labels[] = $row['jurisdiction_name'];
|
||||
$series[] = array('meta' => $row['tax_rate'] . '%', 'value' => $row['tax']);
|
||||
}
|
||||
|
||||
$data = array(
|
||||
'title' => $this->lang->line('reports_sales_taxes_summary_report'),
|
||||
'subtitle' => $this->_get_subtitle_report(array('start_date' => $start_date, 'end_date' => $end_date)),
|
||||
'chart_type' => 'reports/graphs/pie',
|
||||
'labels_1' => $labels,
|
||||
'series_data_1' => $series,
|
||||
'summary_data_1' => $summary,
|
||||
'show_currency' => TRUE
|
||||
);
|
||||
|
||||
$this->load->view('reports/graphical', $data);
|
||||
}
|
||||
|
||||
//Graphical summary customers report
|
||||
public function graphical_summary_customers($start_date, $end_date, $sale_type, $location_id = 'all')
|
||||
{
|
||||
@@ -706,9 +818,9 @@ class Reports extends Secure_Controller
|
||||
}
|
||||
|
||||
//Graphical summary discounts report
|
||||
public function graphical_summary_discounts($start_date, $end_date, $sale_type, $location_id = 'all')
|
||||
public function graphical_summary_discounts($start_date, $end_date, $sale_type, $location_id = 'all', $discount_type=0)
|
||||
{
|
||||
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'sale_type' => $sale_type, 'location_id' => $location_id);
|
||||
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'sale_type' => $sale_type, 'location_id' => $location_id,'discount_type'=>$discount_type);
|
||||
|
||||
$this->load->model('reports/Summary_discounts');
|
||||
$model = $this->Summary_discounts;
|
||||
@@ -722,7 +834,7 @@ class Reports extends Secure_Controller
|
||||
{
|
||||
$row = $this->xss_clean($row);
|
||||
|
||||
$labels[] = $row['discount_percent'];
|
||||
$labels[] = $row['discount'];
|
||||
$series[] = $row['count'];
|
||||
}
|
||||
|
||||
@@ -734,7 +846,7 @@ class Reports extends Secure_Controller
|
||||
'series_data_1' => $series,
|
||||
'summary_data_1' => $summary,
|
||||
'yaxis_title' => $this->lang->line('reports_count'),
|
||||
'xaxis_title' => $this->lang->line('reports_discount_percent'),
|
||||
'xaxis_title' => $this->lang->line('reports_discount'),
|
||||
'show_currency' => FALSE
|
||||
);
|
||||
|
||||
@@ -758,8 +870,11 @@ class Reports extends Secure_Controller
|
||||
{
|
||||
$row = $this->xss_clean($row);
|
||||
|
||||
$labels[] = $row['payment_type'];
|
||||
$series[] = array('meta' => $row['payment_type'] . ' ' . round($row['payment_amount'] / $summary['total'] * 100, 2) . '%', 'value' => $row['payment_amount']);
|
||||
if($row['trans_group'] == $this->lang->line('reports_trans_payments') && !empty($row['trans_amount']))
|
||||
{
|
||||
$labels[] = $row['trans_type'];
|
||||
$series[] = array('meta' => $row['trans_type'] . ' ' . round($row['trans_amount'] / $summary['total'] * 100, 2) . '%', 'value' => $row['trans_amount']);
|
||||
}
|
||||
}
|
||||
|
||||
$data = array(
|
||||
@@ -842,7 +957,7 @@ class Reports extends Secure_Controller
|
||||
$summary_data[] = $this->xss_clean(array(
|
||||
'id' => $row['sale_id'],
|
||||
'type_code' => $row['type_code'],
|
||||
'sale_date' => date($this->config->item('dateformat'), strtotime($row['sale_date'])),
|
||||
'sale_date' => to_date(strtotime($row['sale_date'])),
|
||||
'quantity' => to_quantity_decimals($row['items_purchased']),
|
||||
'employee_name' => $row['employee_name'],
|
||||
'subtotal' => to_currency($row['subtotal']),
|
||||
@@ -861,7 +976,7 @@ class Reports extends Secure_Controller
|
||||
$details_data[$row['sale_id']][] = $this->xss_clean(array(
|
||||
$drow['name'],
|
||||
$drow['category'],
|
||||
$drow['serialnumber'],
|
||||
$drow['item_number'],
|
||||
$drow['description'],
|
||||
to_quantity_decimals($drow['quantity_purchased']),
|
||||
to_currency($drow['subtotal']),
|
||||
@@ -869,7 +984,8 @@ class Reports extends Secure_Controller
|
||||
to_currency($drow['total']),
|
||||
to_currency($drow['cost']),
|
||||
to_currency($drow['profit']),
|
||||
$drow['discount_percent'].'%'));
|
||||
($drow['discount_type'] == PERCENT)? $drow['discount'].'%':to_currency($drow['discount'])
|
||||
));
|
||||
}
|
||||
|
||||
if(isset($report_data['rewards'][$key]))
|
||||
@@ -953,7 +1069,7 @@ class Reports extends Secure_Controller
|
||||
$summary_data[] = $this->xss_clean(array(
|
||||
'id' => $row['sale_id'],
|
||||
'type_code' => $row['type_code'],
|
||||
'sale_date' => date($this->config->item('dateformat'), strtotime($row['sale_date'])),
|
||||
'sale_date' => to_date(strtotime($row['sale_date'])),
|
||||
'quantity' => to_quantity_decimals($row['items_purchased']),
|
||||
'customer_name' => $row['customer_name'],
|
||||
'subtotal' => to_currency($row['subtotal']),
|
||||
@@ -972,7 +1088,7 @@ class Reports extends Secure_Controller
|
||||
$details_data[$row['sale_id']][] = $this->xss_clean(array(
|
||||
$drow['name'],
|
||||
$drow['category'],
|
||||
$drow['serialnumber'],
|
||||
$drow['item_number'],
|
||||
$drow['description'],
|
||||
to_quantity_decimals($drow['quantity_purchased']),
|
||||
to_currency($drow['subtotal']),
|
||||
@@ -980,7 +1096,8 @@ class Reports extends Secure_Controller
|
||||
to_currency($drow['total']),
|
||||
to_currency($drow['cost']),
|
||||
to_currency($drow['profit']),
|
||||
$drow['discount_percent'].'%'));
|
||||
($drow['discount_type'] == PERCENT)? $drow['discount'].'%':to_currency($drow['discount'])
|
||||
));
|
||||
}
|
||||
|
||||
if(isset($report_data['rewards'][$key]))
|
||||
@@ -1018,6 +1135,9 @@ class Reports extends Secure_Controller
|
||||
$discounts[$i] = $i . '%';
|
||||
}
|
||||
$data['specific_input_data'] = $discounts;
|
||||
$data['discount_type_options'] = array(
|
||||
'0' => $this->lang->line('reports_discount_percent'),
|
||||
'1'=> $this->lang->line('reports_discount_fixed'));
|
||||
$data['sale_type_options'] = $this->get_sale_type_options();
|
||||
|
||||
$data = $this->xss_clean($data);
|
||||
@@ -1025,9 +1145,9 @@ class Reports extends Secure_Controller
|
||||
$this->load->view('reports/specific_input', $data);
|
||||
}
|
||||
|
||||
public function specific_discount($start_date, $end_date, $discount, $sale_type)
|
||||
public function specific_discount($start_date, $end_date, $discount, $sale_type, $discount_type)
|
||||
{
|
||||
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'discount' => $discount, 'sale_type' => $sale_type);
|
||||
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'discount' => $discount, 'sale_type' => $sale_type, 'discount_type' => $discount_type);
|
||||
|
||||
$this->load->model('reports/Specific_discount');
|
||||
$model = $this->Specific_discount;
|
||||
@@ -1057,7 +1177,7 @@ class Reports extends Secure_Controller
|
||||
$summary_data[] = $this->xss_clean(array(
|
||||
'id' => $row['sale_id'],
|
||||
'type_code' => $row['type_code'],
|
||||
'sale_date' => date($this->config->item('dateformat'), strtotime($row['sale_date'])),
|
||||
'sale_date' => to_date(strtotime($row['sale_date'])),
|
||||
'quantity' => to_quantity_decimals($row['items_purchased']),
|
||||
'employee_name' => $row['employee_name'],
|
||||
'customer_name' => $row['customer_name'],
|
||||
@@ -1077,7 +1197,7 @@ class Reports extends Secure_Controller
|
||||
$details_data[$row['sale_id']][] = $this->xss_clean(array(
|
||||
$drow['name'],
|
||||
$drow['category'],
|
||||
$drow['serialnumber'],
|
||||
$drow['item_number'],
|
||||
$drow['description'],
|
||||
to_quantity_decimals($drow['quantity_purchased']),
|
||||
to_currency($drow['subtotal']),
|
||||
@@ -1085,7 +1205,8 @@ class Reports extends Secure_Controller
|
||||
to_currency($drow['total']),
|
||||
to_currency($drow['cost']),
|
||||
to_currency($drow['profit']),
|
||||
$drow['discount_percent'].'%'));
|
||||
($drow['discount_type'] == PERCENT)? $drow['discount'].'%':to_currency($drow['discount'])
|
||||
));
|
||||
}
|
||||
|
||||
if(isset($report_data['rewards'][$key]))
|
||||
@@ -1134,7 +1255,7 @@ class Reports extends Secure_Controller
|
||||
|
||||
$summary_data = $this->xss_clean(array(
|
||||
'sale_id' => $report_data['sale_id'],
|
||||
'sale_date' => date($this->config->item('dateformat'), strtotime($report_data['sale_date'])),
|
||||
'sale_date' => to_date(strtotime($report_data['sale_date'])),
|
||||
'quantity' => to_quantity_decimals($report_data['items_purchased']),
|
||||
'employee_name' => $report_data['employee_name'],
|
||||
'customer_name' => $report_data['customer_name'],
|
||||
@@ -1152,6 +1273,65 @@ class Reports extends Secure_Controller
|
||||
echo json_encode(array($sale_id => $summary_data));
|
||||
}
|
||||
|
||||
public function specific_supplier_input()
|
||||
{
|
||||
$data = array();
|
||||
$data['specific_input_name'] = $this->lang->line('reports_supplier');
|
||||
|
||||
$supplier = array();
|
||||
foreach($this->Supplier->get_all()->result() as $supplier)
|
||||
{
|
||||
$suppliers[$supplier->person_id] = $this->xss_clean($supplier->company_name . ' (' . $supplier->first_name . ' ' . $supplier->last_name . ')');
|
||||
}
|
||||
$data['specific_input_data'] = $suppliers;
|
||||
$data['sale_type_options'] = $this->get_sale_type_options();
|
||||
|
||||
$this->load->view('reports/specific_input', $data);
|
||||
}
|
||||
|
||||
public function specific_supplier($start_date, $end_date, $supplier_id, $sale_type)
|
||||
{
|
||||
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'supplier_id' => $supplier_id, 'sale_type' => $sale_type);
|
||||
|
||||
$this->load->model('reports/Specific_supplier');
|
||||
$model = $this->Specific_supplier;
|
||||
|
||||
$model->create($inputs);
|
||||
|
||||
$report_data = $model->getData($inputs);
|
||||
|
||||
$tabular_data = array();
|
||||
foreach($report_data as $row)
|
||||
{
|
||||
$tabular_data[] = $this->xss_clean(array(
|
||||
'id' => $row['sale_id'],
|
||||
'type_code' => $row['type_code'],
|
||||
'sale_date' => to_date(strtotime($row['sale_date'])),
|
||||
'name' => $row['name'],
|
||||
'category' => $row['category'],
|
||||
'item_number' => $row['item_number'],
|
||||
'quantity' => to_quantity_decimals($row['items_purchased']),
|
||||
'subtotal' => to_currency($row['subtotal']),
|
||||
'tax' => to_currency_tax($row['tax']),
|
||||
'total' => to_currency($row['total']),
|
||||
'cost' => to_currency($row['cost']),
|
||||
'profit' => to_currency($row['profit']),
|
||||
'discount' => ($row['discount_type'] == PERCENT)? $row['discount'].'%':to_currency($row['discount'])
|
||||
));
|
||||
}
|
||||
|
||||
$supplier_info = $this->Supplier->get_info($supplier_id);
|
||||
$data = array(
|
||||
'title' => $this->xss_clean($supplier_info->company_name . ' (' . $supplier_info->first_name . ' ' . $supplier_info->last_name . ') ' . $this->lang->line('reports_report')),
|
||||
'subtitle' => $this->_get_subtitle_report(array('start_date' => $start_date, 'end_date' => $end_date)),
|
||||
'headers' => $this->xss_clean($model->getDataColumns()),
|
||||
'data' => $tabular_data,
|
||||
'summary_data' => $this->xss_clean($model->getSummaryData($inputs))
|
||||
);
|
||||
|
||||
$this->load->view('reports/tabular', $data);
|
||||
}
|
||||
|
||||
public function get_sale_type_options()
|
||||
{
|
||||
$sale_type_options = array();
|
||||
@@ -1172,14 +1352,19 @@ class Reports extends Secure_Controller
|
||||
|
||||
public function detailed_sales($start_date, $end_date, $sale_type, $location_id = 'all')
|
||||
{
|
||||
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'sale_type' => $sale_type, 'location_id' => $location_id);
|
||||
$definition_names = $this->Attribute->get_definitions_by_flags(Attribute::SHOW_IN_SALES);
|
||||
|
||||
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'sale_type' => $sale_type, 'location_id' => $location_id, 'definition_ids' => array_keys($definition_names));
|
||||
|
||||
$this->load->model('reports/Detailed_sales');
|
||||
$model = $this->Detailed_sales;
|
||||
|
||||
$model->create($inputs);
|
||||
|
||||
$headers = $this->xss_clean($model->getDataColumns());
|
||||
$columns = $model->getDataColumns();
|
||||
$columns['details'] = array_merge($columns['details'], $definition_names);
|
||||
|
||||
$headers = $this->xss_clean($columns);
|
||||
|
||||
$report_data = $model->getData($inputs);
|
||||
|
||||
@@ -1205,7 +1390,7 @@ class Reports extends Secure_Controller
|
||||
$summary_data[] = $this->xss_clean(array(
|
||||
'id' => $row['sale_id'],
|
||||
'type_code' => $row['type_code'],
|
||||
'sale_date' => date($this->config->item('dateformat'), strtotime($row['sale_date'])),
|
||||
'sale_date' => to_date(strtotime($row['sale_date'])),
|
||||
'quantity' => to_quantity_decimals($row['items_purchased']),
|
||||
'employee_name' => $row['employee_name'],
|
||||
'customer_name' => $row['customer_name'],
|
||||
@@ -1227,10 +1412,13 @@ class Reports extends Secure_Controller
|
||||
{
|
||||
$quantity_purchased .= ' [' . $this->Stock_location->get_location_name($drow['item_location']) . ']';
|
||||
}
|
||||
$details_data[$row['sale_id']][] = $this->xss_clean(array(
|
||||
|
||||
$attribute_values = expand_attribute_values($definition_names, $drow);
|
||||
|
||||
$details_data[$row['sale_id']][] = $this->xss_clean(array_merge(array(
|
||||
$drow['name'],
|
||||
$drow['category'],
|
||||
$drow['serialnumber'],
|
||||
$drow['item_number'],
|
||||
$drow['description'],
|
||||
$quantity_purchased,
|
||||
to_currency($drow['subtotal']),
|
||||
@@ -1238,7 +1426,7 @@ class Reports extends Secure_Controller
|
||||
to_currency($drow['total']),
|
||||
to_currency($drow['cost']),
|
||||
to_currency($drow['profit']),
|
||||
$drow['discount_percent'].'%'));
|
||||
($drow['discount_type'] == PERCENT)? $drow['discount'].'%':to_currency($drow['discount'])), $attribute_values));
|
||||
}
|
||||
|
||||
if(isset($report_data['rewards'][$key]))
|
||||
@@ -1276,7 +1464,7 @@ class Reports extends Secure_Controller
|
||||
|
||||
$summary_data = $this->xss_clean(array(
|
||||
'receiving_id' => $report_data['receiving_id'],
|
||||
'receiving_date' => date($this->config->item('dateformat'), strtotime($report_data['receiving_date'])),
|
||||
'receiving_date' => to_date(strtotime($report_data['receiving_date'])),
|
||||
'quantity' => to_quantity_decimals($report_data['items_purchased']),
|
||||
'employee_name' => $report_data['employee_name'],
|
||||
'supplier_name' => $report_data['supplier_name'],
|
||||
@@ -1294,14 +1482,19 @@ class Reports extends Secure_Controller
|
||||
|
||||
public function detailed_receivings($start_date, $end_date, $receiving_type, $location_id = 'all')
|
||||
{
|
||||
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'receiving_type' => $receiving_type, 'location_id' => $location_id);
|
||||
$definition_names = $this->Attribute->get_definitions_by_flags(Attribute::SHOW_IN_RECEIVINGS);
|
||||
|
||||
$inputs = array('start_date' => $start_date, 'end_date' => $end_date, 'receiving_type' => $receiving_type, 'location_id' => $location_id, 'definition_ids' => array_keys($definition_names));
|
||||
|
||||
$this->load->model('reports/Detailed_receivings');
|
||||
$model = $this->Detailed_receivings;
|
||||
|
||||
$model->create($inputs);
|
||||
|
||||
$headers = $this->xss_clean($model->getDataColumns());
|
||||
$columns = $model->getDataColumns();
|
||||
$columns['details'] = array_merge($columns['details'], $definition_names);
|
||||
|
||||
$headers = $this->xss_clean($columns);
|
||||
$report_data = $model->getData($inputs);
|
||||
|
||||
$summary_data = array();
|
||||
@@ -1313,7 +1506,7 @@ class Reports extends Secure_Controller
|
||||
{
|
||||
$summary_data[] = $this->xss_clean(array(
|
||||
'id' => $row['receiving_id'],
|
||||
'receiving_date' => date($this->config->item('dateformat'), strtotime($row['receiving_date'])),
|
||||
'receiving_date' => to_date(strtotime($row['receiving_date'])),
|
||||
'quantity' => to_quantity_decimals($row['items_purchased']),
|
||||
'employee_name' => $row['employee_name'],
|
||||
'supplier_name' => $row['supplier_name'],
|
||||
@@ -1334,13 +1527,16 @@ class Reports extends Secure_Controller
|
||||
{
|
||||
$quantity_purchased .= ' [' . $this->Stock_location->get_location_name($drow['item_location']) . ']';
|
||||
}
|
||||
$details_data[$row['receiving_id']][] = $this->xss_clean(array(
|
||||
|
||||
$attribute_values = expand_attribute_values($definition_names, $drow);
|
||||
|
||||
$details_data[$row['receiving_id']][] = $this->xss_clean(array_merge(array(
|
||||
$drow['item_number'],
|
||||
$drow['name'],
|
||||
$drow['category'],
|
||||
$quantity_purchased,
|
||||
to_currency($drow['total']),
|
||||
$drow['discount_percent'].'%'));
|
||||
($drow['discount_type'] == PERCENT)? $drow['discount'].'%':to_currency($drow['discount'])), $attribute_values));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1419,7 +1615,9 @@ class Reports extends Secure_Controller
|
||||
$tabular_data[] = $this->xss_clean(array(
|
||||
'item_name' => $row['name'],
|
||||
'item_number' => $row['item_number'],
|
||||
'category' => $row['category'],
|
||||
'quantity' => to_quantity_decimals($row['quantity']),
|
||||
'low_sell_quantity' => to_quantity_decimals($row['low_sell_quantity']),
|
||||
'reorder_level' => to_quantity_decimals($row['reorder_level']),
|
||||
'location_name' => $row['location_name'],
|
||||
'cost_price' => to_currency($row['cost_price']),
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
<?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");
|
||||
|
||||
define('PRICE_MODE_STANDARD', 0);
|
||||
define('PRICE_MODE_KIT', 1);
|
||||
define('PAYMENT_TYPE_UNASSIGNED', '--');
|
||||
|
||||
class Sales extends Secure_Controller
|
||||
{
|
||||
@@ -11,14 +12,16 @@ class Sales extends Secure_Controller
|
||||
{
|
||||
parent::__construct('sales');
|
||||
|
||||
$this->load->helper('file');
|
||||
$this->load->library('sale_lib');
|
||||
$this->load->library('barcode_lib');
|
||||
$this->load->library('email_lib');
|
||||
$this->load->library('token_lib');
|
||||
$this->load->library('barcode_lib');
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
$this->session->set_userdata('allow_temp_items', 1);
|
||||
$this->_reload();
|
||||
}
|
||||
|
||||
@@ -34,20 +37,11 @@ class Sales extends Secure_Controller
|
||||
{
|
||||
$data['table_headers'] = get_sales_manage_table_headers();
|
||||
|
||||
// filters that will be loaded in the multiselect dropdown
|
||||
if($this->config->item('invoice_enable') == TRUE)
|
||||
{
|
||||
$data['filters'] = array('only_cash' => $this->lang->line('sales_cash_filter'),
|
||||
'only_due' => $this->lang->line('sales_due_filter'),
|
||||
'only_check' => $this->lang->line('sales_check_filter'),
|
||||
'only_invoices' => $this->lang->line('sales_invoice_filter'));
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['filters'] = array('only_cash' => $this->lang->line('sales_cash_filter'),
|
||||
'only_due' => $this->lang->line('sales_due_filter'),
|
||||
'only_check' => $this->lang->line('sales_check_filter'));
|
||||
}
|
||||
$data['filters'] = array('only_cash' => $this->lang->line('sales_cash_filter'),
|
||||
'only_due' => $this->lang->line('sales_due_filter'),
|
||||
'only_check' => $this->lang->line('sales_check_filter'),
|
||||
'only_creditcard' => $this->lang->line('sales_credit_filter'),
|
||||
'only_invoices' => $this->lang->line('sales_invoice_filter'));
|
||||
|
||||
$this->load->view('sales/manage', $data);
|
||||
}
|
||||
@@ -76,6 +70,7 @@ class Sales extends Secure_Controller
|
||||
'only_cash' => FALSE,
|
||||
'only_due' => FALSE,
|
||||
'only_check' => FALSE,
|
||||
'only_creditcard' => FALSE,
|
||||
'only_invoices' => $this->config->item('invoice_enable') && $this->input->get('only_invoices'),
|
||||
'is_valid_receipt' => $this->Sale->is_valid_receipt($search));
|
||||
|
||||
@@ -135,12 +130,13 @@ class Sales extends Secure_Controller
|
||||
if($this->Customer->exists($customer_id))
|
||||
{
|
||||
$this->sale_lib->set_customer($customer_id);
|
||||
$discount_percent = $this->Customer->get_info($customer_id)->discount_percent;
|
||||
$discount = $this->Customer->get_info($customer_id)->discount;
|
||||
$discount_type = $this->Customer->get_info($customer_id)->discount_type;
|
||||
|
||||
// apply customer default discount to items that have 0 discount
|
||||
if($discount_percent != '')
|
||||
if($discount != '')
|
||||
{
|
||||
$this->sale_lib->apply_customer_discount($discount_percent);
|
||||
$this->sale_lib->apply_customer_discount($discount, $discount_type);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -173,11 +169,23 @@ class Sales extends Secure_Controller
|
||||
$this->sale_lib->set_sale_type(SALE_TYPE_RETURN);
|
||||
}
|
||||
|
||||
if($this->config->item('dinner_table_enable') == TRUE)
|
||||
{
|
||||
$occupied_dinner_table = $this->input->post('dinner_table');
|
||||
$released_dinner_table = $this->sale_lib->get_dinner_table();
|
||||
$occupied = $this->Dinner_table->is_occupied($released_dinner_table);
|
||||
|
||||
if($occupied && ($occupied_dinner_table != $released_dinner_table))
|
||||
{
|
||||
$this->Dinner_table->swap_tables($released_dinner_table, $occupied_dinner_table);
|
||||
}
|
||||
|
||||
$this->sale_lib->set_dinner_table($occupied_dinner_table);
|
||||
}
|
||||
|
||||
$stock_location = $this->input->post('stock_location');
|
||||
if(!$stock_location || $stock_location == $this->sale_lib->get_sale_location())
|
||||
{
|
||||
$dinner_table = $this->input->post('dinner_table');
|
||||
$this->sale_lib->set_dinner_table($dinner_table);
|
||||
|
||||
}
|
||||
elseif($this->Stock_location->is_allowed_location($stock_location, 'sales'))
|
||||
@@ -185,6 +193,8 @@ class Sales extends Secure_Controller
|
||||
$this->sale_lib->set_sale_location($stock_location);
|
||||
}
|
||||
|
||||
$this->sale_lib->empty_payments();
|
||||
|
||||
$this->_reload();
|
||||
}
|
||||
|
||||
@@ -226,11 +236,6 @@ class Sales extends Secure_Controller
|
||||
$this->sale_lib->set_invoice_number($this->input->post('sales_invoice_number'));
|
||||
}
|
||||
|
||||
public function set_invoice_number_enabled()
|
||||
{
|
||||
$this->sale_lib->set_invoice_number_enabled($this->input->post('sales_invoice_number_enabled'));
|
||||
}
|
||||
|
||||
public function set_payment_type()
|
||||
{
|
||||
$this->sale_lib->set_payment_type($this->input->post('selected_payment_type'));
|
||||
@@ -365,28 +370,25 @@ class Sales extends Secure_Controller
|
||||
{
|
||||
$data = array();
|
||||
|
||||
$discount = 0;
|
||||
$discount = $this->config->item('default_sales_discount');
|
||||
$discount_type = $this->config->item('default_sales_discount_type');
|
||||
|
||||
// check if any discount is assigned to the selected customer
|
||||
$customer_id = $this->sale_lib->get_customer();
|
||||
if($customer_id != -1)
|
||||
{
|
||||
// load the customer discount if any
|
||||
$discount_percent = $this->Customer->get_info($customer_id)->discount_percent;
|
||||
if($discount_percent != '')
|
||||
$customer_discount = $this->Customer->get_info($customer_id)->discount;
|
||||
$customer_discount_type = $this->Customer->get_info($customer_id)->discount_type;
|
||||
if($customer_discount != '')
|
||||
{
|
||||
$discount = $discount_percent;
|
||||
$discount = $customer_discount;
|
||||
$discount_type = $customer_discount_type;
|
||||
}
|
||||
}
|
||||
|
||||
// if the customer discount is 0 or no customer is selected apply the default sales discount
|
||||
if($discount == 0)
|
||||
{
|
||||
$discount = $this->config->item('default_sales_discount');
|
||||
}
|
||||
|
||||
$item_id_or_number_or_item_kit_or_receipt = $this->input->post('item');
|
||||
$this->barcode_lib->parse_barcode_fields($quantity, $item_id_or_number_or_item_kit_or_receipt);
|
||||
$this->token_lib->parse_barcode($quantity, $price, $item_id_or_number_or_item_kit_or_receipt);
|
||||
$mode = $this->sale_lib->get_mode();
|
||||
$quantity = ($mode == 'return') ? -$quantity : $quantity;
|
||||
$item_location = $this->sale_lib->get_sale_location();
|
||||
@@ -405,17 +407,17 @@ class Sales extends Secure_Controller
|
||||
$kit_price_option = $item_kit_info->price_option;
|
||||
$kit_print_option = $item_kit_info->print_option; // 0-all, 1-priced, 2-kit-only
|
||||
|
||||
if($item_kit_info->kit_discount_percent != 0 && $item_kit_info->kit_discount_percent > $discount)
|
||||
if($item_kit_info->kit_discount != 0 && $item_kit_info->kit_discount > $discount)
|
||||
{
|
||||
$discount = $item_kit_info->kit_discount_percent;
|
||||
$discount = $item_kit_info->kit_discount;
|
||||
$discount_type = $item_kit_info->kit_discount_type;
|
||||
}
|
||||
|
||||
$price = NULL;
|
||||
$print_option = PRINT_ALL; // Always include in list of items on invoice
|
||||
|
||||
if(!empty($kit_item_id))
|
||||
{
|
||||
if(!$this->sale_lib->add_item($kit_item_id, $quantity, $item_location, $discount, PRICE_MODE_STANDARD))
|
||||
if(!$this->sale_lib->add_item($kit_item_id, $quantity, $item_location, $discount, $discount_type, PRICE_MODE_STANDARD, NULL, NULL, $price))
|
||||
{
|
||||
$data['error'] = $this->lang->line('sales_unable_to_add_item');
|
||||
}
|
||||
@@ -427,7 +429,7 @@ class Sales extends Secure_Controller
|
||||
|
||||
// Add item kit items to order
|
||||
$stock_warning = NULL;
|
||||
if(!$this->sale_lib->add_item_kit($item_id_or_number_or_item_kit_or_receipt, $item_location, $discount, $kit_price_option, $kit_print_option, $stock_warning))
|
||||
if(!$this->sale_lib->add_item_kit($item_id_or_number_or_item_kit_or_receipt, $item_location, $discount, $discount_type, $kit_price_option, $kit_print_option, $stock_warning))
|
||||
{
|
||||
$data['error'] = $this->lang->line('sales_unable_to_add_item');
|
||||
}
|
||||
@@ -438,7 +440,7 @@ class Sales extends Secure_Controller
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!$this->sale_lib->add_item($item_id_or_number_or_item_kit_or_receipt, $quantity, $item_location, $discount, PRICE_MODE_STANDARD))
|
||||
if(!$this->sale_lib->add_item($item_id_or_number_or_item_kit_or_receipt, $quantity, $item_location, $discount, $discount_type, PRICE_MODE_STANDARD, NULL, NULL, $price))
|
||||
{
|
||||
$data['error'] = $this->lang->line('sales_unable_to_add_item');
|
||||
}
|
||||
@@ -447,6 +449,7 @@ class Sales extends Secure_Controller
|
||||
$data['warning'] = $this->sale_lib->out_of_stock($item_id_or_number_or_item_kit_or_receipt, $item_location);
|
||||
}
|
||||
}
|
||||
|
||||
$this->_reload($data);
|
||||
}
|
||||
|
||||
@@ -461,14 +464,18 @@ class Sales extends Secure_Controller
|
||||
$description = $this->input->post('description');
|
||||
$serialnumber = $this->input->post('serialnumber');
|
||||
$price = parse_decimals($this->input->post('price'));
|
||||
$quantity = parse_decimals($this->input->post('quantity'));
|
||||
$quantity = parse_quantity($this->input->post('quantity'));
|
||||
$discount = parse_decimals($this->input->post('discount'));
|
||||
$discount_type = $this->input->post('discount_type');
|
||||
|
||||
$item_location = $this->input->post('location');
|
||||
$discounted_total = $this->input->post('discounted_total') != '' ? $this->input->post('discounted_total') : NULL;
|
||||
|
||||
if($this->form_validation->run() != FALSE)
|
||||
{
|
||||
$this->sale_lib->edit_item($item_id, $description, $serialnumber, $quantity, $discount, $price, $discounted_total);
|
||||
$this->sale_lib->edit_item($item_id, $description, $serialnumber, $quantity, $discount, $discount_type, $price, $discounted_total);
|
||||
|
||||
$this->sale_lib->empty_payments();
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -484,6 +491,8 @@ class Sales extends Secure_Controller
|
||||
{
|
||||
$this->sale_lib->delete_item($item_number);
|
||||
|
||||
$this->sale_lib->empty_payments();
|
||||
|
||||
$this->_reload();
|
||||
}
|
||||
|
||||
@@ -505,19 +514,32 @@ class Sales extends Secure_Controller
|
||||
$sale_type = $this->sale_lib->get_sale_type();
|
||||
$data = array();
|
||||
$data['dinner_table'] = $this->sale_lib->get_dinner_table();
|
||||
|
||||
$data['cart'] = $this->sale_lib->get_cart();
|
||||
$data['transaction_time'] = date($this->config->item('dateformat') . ' ' . $this->config->item('timeformat'));
|
||||
$data['transaction_date'] = date($this->config->item('dateformat'));
|
||||
|
||||
$data['include_hsn'] = ($this->config->item('include_hsn') == '1');
|
||||
$__time = time();
|
||||
$data['transaction_time'] = to_datetime($__time);
|
||||
$data['transaction_date'] = to_date($__time);
|
||||
$data['show_stock_locations'] = $this->Stock_location->show_locations('sales');
|
||||
$data['comments'] = $this->sale_lib->get_comment();
|
||||
$employee_id = $this->Employee->get_logged_in_employee_info()->person_id;
|
||||
$employee_info = $this->Employee->get_info($employee_id);
|
||||
$data['employee'] = $employee_info->first_name . ' ' . $employee_info->last_name[0];
|
||||
$data['employee'] = $employee_info->first_name . ' ' . mb_substr($employee_info->last_name, 0, 1);
|
||||
|
||||
$data['company_info'] = implode("\n", array(
|
||||
$this->config->item('address'),
|
||||
$this->config->item('phone'),
|
||||
$this->config->item('account_number')
|
||||
$this->config->item('phone')
|
||||
));
|
||||
if($this->config->item('account_number'))
|
||||
{
|
||||
$data['company_info'] .= "\n" . $this->lang->line('sales_account_number') . ": " . $this->config->item('account_number');
|
||||
}
|
||||
if($this->config->item('tax_id') != '')
|
||||
{
|
||||
$data['company_info'] .= "\n" . $this->lang->line('sales_tax_id') . ": " . $this->config->item('tax_id');
|
||||
}
|
||||
|
||||
$data['invoice_number_enabled'] = $this->sale_lib->is_invoice_mode();
|
||||
$data['cur_giftcard_value'] = $this->sale_lib->get_giftcard_remainder();
|
||||
$data['cur_rewards_value'] = $this->sale_lib->get_rewards_remainder();
|
||||
@@ -525,7 +547,6 @@ class Sales extends Secure_Controller
|
||||
$data['price_work_orders'] = $this->sale_lib->is_price_work_orders();
|
||||
$data['email_receipt'] = $this->sale_lib->is_email_receipt();
|
||||
$customer_id = $this->sale_lib->get_customer();
|
||||
$invoice_number_enabled = $this->sale_lib->get_invoice_number_enabled();
|
||||
$invoice_number = $this->sale_lib->get_invoice_number();
|
||||
$data["invoice_number"] = $invoice_number;
|
||||
$work_order_number = $this->sale_lib->get_work_order_number();
|
||||
@@ -536,13 +557,15 @@ class Sales extends Secure_Controller
|
||||
if($customer_info != NULL)
|
||||
{
|
||||
$data["customer_comments"] = $customer_info->comments;
|
||||
$data['tax_id'] = $customer_info->tax_id;
|
||||
}
|
||||
$data['taxes'] = $this->sale_lib->get_taxes();
|
||||
$tax_details = $this->tax_lib->get_taxes($data['cart']);
|
||||
$data['taxes'] = $tax_details[0];
|
||||
$data['discount'] = $this->sale_lib->get_discount();
|
||||
$data['payments'] = $this->sale_lib->get_payments();
|
||||
|
||||
// Returns 'subtotal', 'total', 'cash_total', 'payment_total', 'amount_due', 'cash_amount_due', 'payments_cover_total'
|
||||
$totals = $this->sale_lib->get_totals();
|
||||
$totals = $this->sale_lib->get_totals($tax_details[0]);
|
||||
$data['subtotal'] = $totals['subtotal'];
|
||||
$data['total'] = $totals['total'];
|
||||
$data['payments_total'] = $totals['payment_total'];
|
||||
@@ -566,58 +589,37 @@ class Sales extends Secure_Controller
|
||||
}
|
||||
$data['amount_change'] = $data['amount_due'] * -1;
|
||||
|
||||
if($data['amount_change'] > 0)
|
||||
{
|
||||
// Save cash refund to the cash payment transaction if found, if not then add as new Cash transaction
|
||||
|
||||
if(array_key_exists($this->lang->line('sales_cash'), $data['payments']))
|
||||
{
|
||||
$data['payments'][$this->lang->line('sales_cash')]['cash_refund'] = $data['amount_change'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$payment = array($this->lang->line('sales_cash') => array('payment_type' => $this->lang->line('sales_cash'), 'payment_amount' => 0, 'cash_refund' => $data['amount_change']));
|
||||
$data['payments'] += $payment;
|
||||
}
|
||||
}
|
||||
|
||||
$data['print_price_info'] = TRUE;
|
||||
|
||||
$override_invoice_number = NULL;
|
||||
|
||||
if($this->sale_lib->is_sale_by_receipt_mode() && $invoice_number_enabled )
|
||||
{
|
||||
$pos_invoice = TRUE;
|
||||
$candidate_invoice_number = $invoice_number;
|
||||
if($candidate_invoice_number != NULL && strlen($candidate_invoice_number) > 3)
|
||||
{
|
||||
if(strpos($candidate_invoice_number, '{') == FALSE)
|
||||
{
|
||||
$override_invoice_number = $candidate_invoice_number;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$pos_invoice = FALSE;
|
||||
}
|
||||
|
||||
if($this->sale_lib->is_invoice_mode() || $pos_invoice)
|
||||
if($this->sale_lib->is_invoice_mode())
|
||||
{
|
||||
$invoice_format = $this->config->item('sales_invoice_format');
|
||||
// generate final invoice number (if using the invoice in sales by receipt mode then the invoice number can be manually entered or altered in some way
|
||||
if($pos_invoice)
|
||||
if(!empty($invoice_format) && $invoice_number == NULL)
|
||||
{
|
||||
// The user can retain the default encoded format or can manually override it. It still passes through the rendering step.
|
||||
$this->sale_lib->set_invoice_number($this->input->post('invoice_number'), $keep_custom = TRUE);
|
||||
$invoice_format = $this->sale_lib->get_invoice_number();
|
||||
// If the user blanks out the invoice number and doesn't put anything in there then revert back to the default format encoding
|
||||
if(empty($invoice_format))
|
||||
{
|
||||
$invoice_format = $this->config->item('sales_invoice_format');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$invoice_format = $this->config->item('sales_invoice_format');
|
||||
}
|
||||
|
||||
if($override_invoice_number == NULL)
|
||||
{
|
||||
$invoice_number = $this->token_lib->render($invoice_format);
|
||||
}
|
||||
else
|
||||
{
|
||||
$invoice_number = $override_invoice_number;
|
||||
}
|
||||
|
||||
|
||||
if($sale_id == -1 && $this->Sale->check_invoice_number_exists($invoice_number))
|
||||
{
|
||||
$data['error'] = $this->lang->line('sales_invoice_number_duplicate');
|
||||
$data['error'] = $this->lang->line('sales_invoice_number_duplicate', $invoice_number);
|
||||
$this->_reload($data);
|
||||
}
|
||||
else
|
||||
@@ -626,8 +628,11 @@ class Sales extends Secure_Controller
|
||||
$data['sale_status'] = COMPLETED;
|
||||
$sale_type = SALE_TYPE_INVOICE;
|
||||
|
||||
// The PHP file name is the same as the invoice_type key
|
||||
$invoice_view = $this->config->item('invoice_type');
|
||||
|
||||
// Save the data to the sales table
|
||||
$data['sale_id_num'] = $this->Sale->save($sale_id, $data['sale_status'], $data['cart'], $customer_id, $employee_id, $data['comments'], $invoice_number, $work_order_number, $quote_number, $sale_type, $data['payments'], $data['dinner_table'], $data['taxes']);
|
||||
$data['sale_id_num'] = $this->Sale->save($sale_id, $data['sale_status'], $data['cart'], $customer_id, $employee_id, $data['comments'], $invoice_number, $work_order_number, $quote_number, $sale_type, $data['payments'], $data['dinner_table'], $tax_details);
|
||||
$data['sale_id'] = 'POS ' . $data['sale_id_num'];
|
||||
|
||||
// Resort and filter cart lines for printing
|
||||
@@ -642,7 +647,7 @@ class Sales extends Secure_Controller
|
||||
else
|
||||
{
|
||||
$data['barcode'] = $this->barcode_lib->generate_receipt_barcode($data['sale_id']);
|
||||
$this->load->view('sales/invoice', $data);
|
||||
$this->load->view('sales/'.$invoice_view, $data);
|
||||
$this->sale_lib->clear_all();
|
||||
}
|
||||
}
|
||||
@@ -676,7 +681,7 @@ class Sales extends Secure_Controller
|
||||
$data['sale_status'] = SUSPENDED;
|
||||
$sale_type = SALE_TYPE_WORK_ORDER;
|
||||
|
||||
$data['sale_id_num'] = $this->Sale->save($sale_id, $data['sale_status'], $data['cart'], $customer_id, $employee_id, $data['comments'], $invoice_number, $work_order_number, $quote_number, $sale_type, $data['payments'], $data['dinner_table'], $data['taxes']);
|
||||
$data['sale_id_num'] = $this->Sale->save($sale_id, $data['sale_status'], $data['cart'], $customer_id, $employee_id, $data['comments'], $invoice_number, $work_order_number, $quote_number, $sale_type, $data['payments'], $data['dinner_table'], $tax_details);
|
||||
$this->sale_lib->set_suspended_id($data['sale_id_num']);
|
||||
|
||||
$data['cart'] = $this->sale_lib->sort_and_filter_cart($data['cart']);
|
||||
@@ -713,7 +718,7 @@ class Sales extends Secure_Controller
|
||||
$data['sale_status'] = SUSPENDED;
|
||||
$sale_type = SALE_TYPE_QUOTE;
|
||||
|
||||
$data['sale_id_num'] = $this->Sale->save($sale_id, $data['sale_status'], $data['cart'], $customer_id, $employee_id, $data['comments'], $invoice_number, $work_order_number, $quote_number, $sale_type, $data['payments'], $data['dinner_table'], $data['taxes']);
|
||||
$data['sale_id_num'] = $this->Sale->save($sale_id, $data['sale_status'], $data['cart'], $customer_id, $employee_id, $data['comments'], $invoice_number, $work_order_number, $quote_number, $sale_type, $data['payments'], $data['dinner_table'], $tax_details);
|
||||
$this->sale_lib->set_suspended_id($data['sale_id_num']);
|
||||
|
||||
$data['cart'] = $this->sale_lib->sort_and_filter_cart($data['cart']);
|
||||
@@ -740,7 +745,7 @@ class Sales extends Secure_Controller
|
||||
$sale_type = SALE_TYPE_POS;
|
||||
}
|
||||
|
||||
$data['sale_id_num'] = $this->Sale->save($sale_id, $data['sale_status'], $data['cart'], $customer_id, $employee_id, $data['comments'], $invoice_number, $work_order_number, $quote_number, $sale_type, $data['payments'], $data['dinner_table'], $data['taxes']);
|
||||
$data['sale_id_num'] = $this->Sale->save($sale_id, $data['sale_status'], $data['cart'], $customer_id, $employee_id, $data['comments'], $invoice_number, $work_order_number, $quote_number, $sale_type, $data['payments'], $data['dinner_table'], $tax_details);
|
||||
|
||||
$data['sale_id'] = 'POS ' . $data['sale_id_num'];
|
||||
|
||||
@@ -754,10 +759,6 @@ class Sales extends Secure_Controller
|
||||
else
|
||||
{
|
||||
$data['barcode'] = $this->barcode_lib->generate_receipt_barcode($data['sale_id']);
|
||||
|
||||
// Reload (sorted) and filter the cart line items for printing purposes
|
||||
$data['cart'] = $this->get_filtered($this->sale_lib->get_cart_reordered($data['sale_id_num']));
|
||||
|
||||
$this->load->view('sales/receipt', $data);
|
||||
$this->sale_lib->clear_all();
|
||||
}
|
||||
@@ -775,20 +776,21 @@ class Sales extends Secure_Controller
|
||||
{
|
||||
$to = $sale_data['customer_email'];
|
||||
$number = $sale_data[$type."_number"];
|
||||
$subject = $this->lang->line("sales_$type") . ' ' . $number;
|
||||
$subject = $this->lang->line("sales_" . $type) . ' ' . $number;
|
||||
|
||||
$text = $this->config->item('invoice_email_message');
|
||||
$tokens = array(new Token_invoice_sequence($sale_data['invoice_number']),
|
||||
new Token_invoice_count('POS ' . $sale_data['sale_id']),
|
||||
new Token_customer((object)$sale_data));
|
||||
$text = $this->token_lib->render($text, $tokens);
|
||||
$sale_data['mimetype'] = get_mime_by_extension('uploads/' . $this->config->item('company_logo'));
|
||||
|
||||
// generate email attachment: invoice in pdf format
|
||||
$html = $this->load->view("sales/" . $type . "_email", $sale_data, TRUE);
|
||||
// load pdf helper
|
||||
$this->load->helper(array('dompdf', 'file'));
|
||||
$filename = sys_get_temp_dir() . '/' . $this->lang->line("sales_$type") . '-' . str_replace('/', '-', $number) . '.pdf';
|
||||
if(file_put_contents($filename, pdf_create($html)) !== FALSE)
|
||||
$filename = sys_get_temp_dir() . '/' . $this->lang->line("sales_" . $type) . '-' . str_replace('/', '-', $number) . '.pdf';
|
||||
if(file_put_contents($filename, create_pdf($html)) !== FALSE)
|
||||
{
|
||||
$result = $this->email_lib->sendEmail($to, $subject, $text, $filename);
|
||||
}
|
||||
@@ -853,14 +855,15 @@ class Sales extends Secure_Controller
|
||||
$data['customer_address'] = $customer_info->address_1;
|
||||
if(!empty($customer_info->zip) || !empty($customer_info->city))
|
||||
{
|
||||
$data['customer_location'] = $customer_info->zip . ' ' . $customer_info->city;
|
||||
$data['customer_location'] = $customer_info->zip . ' ' . $customer_info->city . "\n" . $customer_info->state;
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['customer_location'] = '';
|
||||
}
|
||||
$data['customer_account_number'] = $customer_info->account_number;
|
||||
$data['customer_discount_percent'] = $customer_info->discount_percent;
|
||||
$data['customer_discount'] = $customer_info->discount;
|
||||
$data['customer_discount_type'] = $customer_info->discount_type;
|
||||
$package_id = $this->Customer->get_info($customer_id)->package_id;
|
||||
if($package_id != NULL)
|
||||
{
|
||||
@@ -880,9 +883,18 @@ class Sales extends Secure_Controller
|
||||
$data['customer_info'] = implode("\n", array(
|
||||
$data['customer'],
|
||||
$data['customer_address'],
|
||||
$data['customer_location'],
|
||||
$data['customer_account_number']
|
||||
$data['customer_location']
|
||||
));
|
||||
|
||||
if($data['customer_account_number'])
|
||||
{
|
||||
$data['customer_info'] .= "\n" . $this->lang->line('sales_account_number') . ": " . $data['customer_account_number'];
|
||||
}
|
||||
if($customer_info->tax_id != '')
|
||||
{
|
||||
$data['customer_info'] .= "\n" . $this->lang->line('sales_tax_id') . ": " . $customer_info->tax_id;
|
||||
}
|
||||
$data['tax_id'] = $customer_info->tax_id;
|
||||
}
|
||||
|
||||
return $customer_info;
|
||||
@@ -899,15 +911,17 @@ class Sales extends Secure_Controller
|
||||
$data['payments'] = $this->sale_lib->get_payments();
|
||||
$data['selected_payment_type'] = $this->sale_lib->get_payment_type();
|
||||
|
||||
$data['taxes'] = $this->sale_lib->get_taxes();
|
||||
$tax_details = $this->tax_lib->get_taxes($data['cart'], $sale_id);
|
||||
$data['taxes'] = $this->Sale->get_sales_taxes($sale_id);
|
||||
$data['discount'] = $this->sale_lib->get_discount();
|
||||
$data['transaction_time'] = date($this->config->item('dateformat') . ' ' . $this->config->item('timeformat'), strtotime($sale_info['sale_time']));
|
||||
$data['transaction_date'] = date($this->config->item('dateformat'), strtotime($sale_info['sale_time']));
|
||||
$data['transaction_time'] = to_datetime(strtotime($sale_info['sale_time']));
|
||||
$data['transaction_date'] = to_date(strtotime($sale_info['sale_time']));
|
||||
$data['show_stock_locations'] = $this->Stock_location->show_locations('sales');
|
||||
|
||||
$data['include_hsn'] = ($this->config->item('include_hsn') == '1');
|
||||
|
||||
// Returns 'subtotal', 'total', 'cash_total', 'payment_total', 'amount_due', 'cash_amount_due', 'payments_cover_total'
|
||||
$totals = $this->sale_lib->get_totals();
|
||||
$totals = $this->sale_lib->get_totals($tax_details[0]);
|
||||
$data['subtotal'] = $totals['subtotal'];
|
||||
$data['total'] = $totals['total'];
|
||||
$data['payments_total'] = $totals['payment_total'];
|
||||
@@ -932,7 +946,7 @@ class Sales extends Secure_Controller
|
||||
$data['amount_change'] = $data['amount_due'] * -1;
|
||||
|
||||
$employee_info = $this->Employee->get_info($this->sale_lib->get_employee());
|
||||
$data['employee'] = $employee_info->first_name . ' ' . $employee_info->last_name[0];
|
||||
$data['employee'] = $employee_info->first_name . ' ' . mb_substr($employee_info->last_name, 0, 1);
|
||||
$this->_load_customer_data($this->sale_lib->get_customer(), $data);
|
||||
|
||||
$data['sale_id_num'] = $sale_id;
|
||||
@@ -941,11 +955,20 @@ class Sales extends Secure_Controller
|
||||
$data['invoice_number'] = $sale_info['invoice_number'];
|
||||
$data['quote_number'] = $sale_info['quote_number'];
|
||||
$data['sale_status'] = $sale_info['sale_status'];
|
||||
|
||||
$data['company_info'] = implode("\n", array(
|
||||
$this->config->item('address'),
|
||||
$this->config->item('phone'),
|
||||
$this->config->item('account_number')
|
||||
$this->config->item('phone')
|
||||
));
|
||||
if($this->config->item('account_number'))
|
||||
{
|
||||
$data['company_info'] .= "\n" . $this->lang->line('sales_account_number') . ": " . $this->config->item('account_number');
|
||||
}
|
||||
if($this->config->item('tax_id') != '')
|
||||
{
|
||||
$data['company_info'] .= "\n" . $this->lang->line('sales_tax_id') . ": " . $this->config->item('tax_id');
|
||||
}
|
||||
|
||||
$data['barcode'] = $this->barcode_lib->generate_receipt_barcode($data['sale_id']);
|
||||
$data['print_after_sale'] = FALSE;
|
||||
$data['price_work_orders'] = FALSE;
|
||||
@@ -976,6 +999,9 @@ class Sales extends Secure_Controller
|
||||
$data['customer_required'] = $this->lang->line('sales_customer_optional');
|
||||
}
|
||||
|
||||
$invoice_type = $this->config->item('invoice_type');
|
||||
$data['invoice_view'] = $invoice_type;
|
||||
|
||||
return $this->xss_clean($data);
|
||||
}
|
||||
|
||||
@@ -992,19 +1018,17 @@ class Sales extends Secure_Controller
|
||||
|
||||
$data['modes'] = $this->sale_lib->get_register_mode_options();
|
||||
$data['mode'] = $this->sale_lib->get_mode();
|
||||
$data['empty_tables'] = $this->sale_lib->get_empty_tables();
|
||||
$data['selected_table'] = $this->sale_lib->get_dinner_table();
|
||||
$data['empty_tables'] = $this->sale_lib->get_empty_tables($data['selected_table']);
|
||||
$data['stock_locations'] = $this->Stock_location->get_allowed_locations('sales');
|
||||
$data['stock_location'] = $this->sale_lib->get_sale_location();
|
||||
$data['tax_exclusive_subtotal'] = $this->sale_lib->get_subtotal(TRUE, TRUE);
|
||||
$data['taxes'] = $this->sale_lib->get_taxes();
|
||||
$tax_details = $this->tax_lib->get_taxes($data['cart']);
|
||||
$data['taxes'] = $tax_details[0];
|
||||
$data['discount'] = $this->sale_lib->get_discount();
|
||||
$data['payments'] = $this->sale_lib->get_payments();
|
||||
// sale_type (0=pos, 1=invoice, 2=work order, 3=quote, 4=return)
|
||||
$sale_type = $this->sale_lib->get_sale_type();
|
||||
|
||||
// Returns 'subtotal', 'total', 'cash_total', 'payment_total', 'amount_due', 'cash_amount_due', 'payments_cover_total'
|
||||
$totals = $this->sale_lib->get_totals();
|
||||
$totals = $this->sale_lib->get_totals($tax_details[0]);
|
||||
$data['item_count'] = $totals['item_count'];
|
||||
$data['total_units'] = $totals['total_units'];
|
||||
$data['subtotal'] = $totals['subtotal'];
|
||||
@@ -1043,14 +1067,17 @@ class Sales extends Secure_Controller
|
||||
}
|
||||
|
||||
$data['items_module_allowed'] = $this->Employee->has_grant('items', $this->Employee->get_logged_in_employee_info()->person_id);
|
||||
$data['change_price'] = $this->Employee->has_grant('sales_change_price', $this->Employee->get_logged_in_employee_info()->person_id);
|
||||
|
||||
$invoice_format = $this->config->item('sales_invoice_format');
|
||||
$data['invoice_format'] = $invoice_format;
|
||||
$invoice_number = $this->sale_lib->get_invoice_number();
|
||||
|
||||
$this->set_invoice_number($invoice_format);
|
||||
$data['invoice_number'] = $invoice_format;
|
||||
if ($this->sale_lib->get_invoice_number() == NULL)
|
||||
{
|
||||
$invoice_number = $this->config->item('sales_invoice_format');
|
||||
}
|
||||
|
||||
$data['invoice_number'] = $invoice_number;
|
||||
|
||||
$data['invoice_number_enabled'] = $this->sale_lib->is_invoice_mode();
|
||||
$data['print_after_sale'] = $this->sale_lib->is_print_after_sale();
|
||||
$data['price_work_orders'] = $this->sale_lib->is_price_work_orders();
|
||||
|
||||
@@ -1100,7 +1127,8 @@ class Sales extends Secure_Controller
|
||||
public function invoice($sale_id)
|
||||
{
|
||||
$data = $this->_load_sale_data($sale_id);
|
||||
$this->load->view('sales/invoice', $data);
|
||||
|
||||
$this->load->view('sales/'.$data['invoice_view'], $data);
|
||||
$this->sale_lib->clear_all();
|
||||
}
|
||||
|
||||
@@ -1108,21 +1136,18 @@ class Sales extends Secure_Controller
|
||||
{
|
||||
$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;
|
||||
}
|
||||
|
||||
$sale_info = $this->xss_clean($this->Sale->get_info($sale_id)->row_array());
|
||||
$data['selected_customer_name'] = $sale_info['customer_name'];
|
||||
$data['selected_customer_id'] = $sale_info['customer_id'];
|
||||
$data['selected_customer_name'] = $sale_info['customer_name'];
|
||||
$employee_info = $this->Employee->get_info($sale_info['employee_id']);
|
||||
$data['selected_employee_id'] = $sale_info['employee_id'];
|
||||
$data['selected_employee_name'] = $this->xss_clean($employee_info->first_name . ' ' . $employee_info->last_name);
|
||||
$data['sale_info'] = $sale_info;
|
||||
$balance_due = $sale_info['amount_due'] - $sale_info['amount_tendered'];
|
||||
if($balance_due < 0)
|
||||
{
|
||||
$balance_due = 0;
|
||||
}
|
||||
|
||||
$data['payments'] = array();
|
||||
foreach($this->Sale->get_sale_payments($sale_id)->result() as $payment)
|
||||
@@ -1134,8 +1159,19 @@ class Sales extends Secure_Controller
|
||||
$data['payments'][] = $payment;
|
||||
}
|
||||
|
||||
$data['payment_type_new'] = PAYMENT_TYPE_UNASSIGNED;
|
||||
$data['payment_amount_new'] = $balance_due;
|
||||
|
||||
$data['balance_due'] = $balance_due != 0;
|
||||
|
||||
// don't allow gift card to be a payment option in a sale transaction edit because it's a complex change
|
||||
$data['payment_options'] = $this->xss_clean($this->Sale->get_payment_options(FALSE));
|
||||
$new_payment_options = $this->xss_clean($this->Sale->get_payment_options(FALSE));
|
||||
$data['payment_options'] = $new_payment_options;
|
||||
|
||||
// Set up a slightly modified list of payment types for new payment entry
|
||||
$new_payment_options["--"] = $this->lang->line('common_none_selected_text');
|
||||
$data['new_payment_options'] = $new_payment_options;
|
||||
|
||||
$this->load->view('sales/form', $data);
|
||||
}
|
||||
|
||||
@@ -1197,52 +1233,60 @@ class Sales extends Secure_Controller
|
||||
public function save($sale_id = -1)
|
||||
{
|
||||
$newdate = $this->input->post('date');
|
||||
$employee_id = $this->Employee->get_logged_in_employee_info()->person_id;
|
||||
|
||||
$date_formatter = date_create_from_format($this->config->item('dateformat') . ' ' . $this->config->item('timeformat'), $newdate);
|
||||
$sale_time = $date_formatter->format('Y-m-d H:i:s');
|
||||
|
||||
$sale_data = array(
|
||||
'sale_time' => $date_formatter->format('Y-m-d H:i:s'),
|
||||
'sale_time' => $sale_time,
|
||||
'customer_id' => $this->input->post('customer_id') != '' ? $this->input->post('customer_id') : NULL,
|
||||
'employee_id' => $this->input->post('employee_id'),
|
||||
'employee_id' => $this->input->post('employee_id') != '' ? $this->input->post('employee_id') : NULL,
|
||||
'comment' => $this->input->post('comment'),
|
||||
'invoice_number' => $this->input->post('invoice_number') != '' ? $this->input->post('invoice_number') : NULL
|
||||
);
|
||||
|
||||
// go through all the payment type input from the form, make sure the form matches the name and iterator number
|
||||
// In order to maintain tradition the only element that can change on prior payments is the payment type
|
||||
$payments = array();
|
||||
$number_of_payments = $this->input->post('number_of_payments');
|
||||
for($i = 0; $i < $number_of_payments; ++$i)
|
||||
{
|
||||
$payment_amount = $this->input->post('payment_amount_' . $i);
|
||||
$payment_id = $this->input->post('payment_id_' . $i);
|
||||
$payment_type = $this->input->post('payment_type_' . $i);
|
||||
// remove any 0 payment if by mistake any was introduced at sale time
|
||||
if($payment_amount != 0)
|
||||
{
|
||||
// search for any payment of the same type that was already added, if that's the case add up the new payment amount
|
||||
$key = FALSE;
|
||||
if(!empty($payments))
|
||||
{
|
||||
// search in the multi array the key of the entry containing the current payment_type
|
||||
// NOTE: in PHP5.5 the array_map could be replaced by an array_column
|
||||
$key = array_search($payment_type, array_map(function ($v)
|
||||
{
|
||||
return $v['payment_type'];
|
||||
}, $payments));
|
||||
}
|
||||
$payment_amount = $this->input->post('payment_amount_' . $i);
|
||||
$refund_type = $this->input->post('refund_type_' . $i);
|
||||
$cash_refund = $this->input->post('refund_amount_' . $i);
|
||||
|
||||
// if no previous payment is found add a new one
|
||||
if($key === FALSE)
|
||||
// if the refund is not cash ...
|
||||
if(empty(strstr($refund_type, $this->lang->line('sales_cash'))))
|
||||
{
|
||||
// ... and it's positive ...
|
||||
if($cash_refund > 0)
|
||||
{
|
||||
$payments[] = array('payment_type' => $payment_type, 'payment_amount' => $payment_amount);
|
||||
}
|
||||
else
|
||||
{
|
||||
// add up the new payment amount to an existing payment type
|
||||
$payments[$key]['payment_amount'] += $payment_amount;
|
||||
// ... change it to be a new negative payment (a "non-cash refund")
|
||||
$payment_type = $refund_type;
|
||||
$payment_amount = $payment_amount - $cash_refund;
|
||||
$cash_refund = 0.00;
|
||||
}
|
||||
}
|
||||
|
||||
// To maintain tradition we will also delete any payments with 0 amount
|
||||
// assuming these are mistakes introduced at sale time.
|
||||
// This is now done in models/Sale.php
|
||||
|
||||
$payments[] = array('payment_id' => $payment_id, 'payment_type' => $payment_type, 'payment_amount' => $payment_amount, 'cash_refund' => $cash_refund, 'employee_id' => $employee_id);
|
||||
}
|
||||
|
||||
$payment_id = -1;
|
||||
$payment_amount = $this->input->post('payment_amount_new');
|
||||
$payment_type = $this->input->post('payment_type_new');
|
||||
|
||||
if($payment_type != PAYMENT_TYPE_UNASSIGNED && $payment_amount <> 0)
|
||||
{
|
||||
$payments[] = array('payment_id' => $payment_id, 'payment_type' => $payment_type, 'payment_amount' => $payment_amount, 'cash_refund' => 0.00, 'employee_id' => $employee_id);
|
||||
}
|
||||
|
||||
$this->Inventory->update('POS '.$sale_id, ['trans_date' => $sale_time]);
|
||||
if($this->Sale->update($sale_id, $sale_data, $payments))
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('sales_successfully_updated'), 'id' => $sale_id));
|
||||
@@ -1264,6 +1308,13 @@ class Sales extends Secure_Controller
|
||||
if($sale_id != -1 && $sale_id != '')
|
||||
{
|
||||
$sale_type = $this->sale_lib->get_sale_type();
|
||||
|
||||
if($this->config->item('dinner_table_enable') == TRUE)
|
||||
{
|
||||
$dinner_table = $this->sale_lib->get_dinner_table();
|
||||
$this->Dinner_table->release($dinner_table);
|
||||
}
|
||||
|
||||
if($sale_type == SALE_TYPE_WORK_ORDER)
|
||||
{
|
||||
$this->Sale->update_sale_status($sale_id, CANCELED);
|
||||
@@ -1274,6 +1325,10 @@ class Sales extends Secure_Controller
|
||||
$this->session->set_userdata('sale_id', -1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->sale_lib->remove_temp_items();
|
||||
}
|
||||
|
||||
$this->sale_lib->clear_all();
|
||||
$this->_reload();
|
||||
@@ -1294,18 +1349,15 @@ class Sales extends Secure_Controller
|
||||
*/
|
||||
public function suspend()
|
||||
{
|
||||
$mode = $this->sale_lib->get_mode();
|
||||
$sale_id = $this->sale_lib->get_sale_id();
|
||||
$dinner_table = $this->sale_lib->get_dinner_table();
|
||||
$cart = $this->sale_lib->get_cart();
|
||||
$payments = $this->sale_lib->get_payments();
|
||||
$employee_id = $this->Employee->get_logged_in_employee_info()->person_id;
|
||||
$customer_id = $this->sale_lib->get_customer();
|
||||
$customer_info = $this->Customer->get_info($customer_id);
|
||||
$invoice_number = $this->sale_lib->get_invoice_number();
|
||||
$work_order_number = $this->sale_lib->get_work_order_number();
|
||||
$quote_number = $this->sale_lib->get_quote_number();
|
||||
$sale_id = $this->sale_lib->get_sale_id();
|
||||
$sale_type = $this->sale_lib->get_sale_type();
|
||||
if($sale_type == '')
|
||||
{
|
||||
@@ -1315,7 +1367,7 @@ class Sales extends Secure_Controller
|
||||
$sale_status = SUSPENDED;
|
||||
|
||||
$data = array();
|
||||
$sales_taxes = array();
|
||||
$sales_taxes = array(array(), array());
|
||||
if($this->Sale->save($sale_id, $sale_status, $cart, $customer_id, $employee_id, $comment, $invoice_number, $work_order_number, $quote_number, $sale_type, $payments, $dinner_table, $sales_taxes) == '-1')
|
||||
{
|
||||
$data['error'] = $this->lang->line('sales_unsuccessfully_suspended_sale');
|
||||
@@ -1326,6 +1378,7 @@ class Sales extends Secure_Controller
|
||||
}
|
||||
|
||||
$this->sale_lib->clear_all();
|
||||
|
||||
$this->_reload($data);
|
||||
}
|
||||
|
||||
@@ -1334,14 +1387,13 @@ class Sales extends Secure_Controller
|
||||
*/
|
||||
public function suspended()
|
||||
{
|
||||
$customer_id = $this->sale_lib->get_customer();
|
||||
$data = array();
|
||||
$customer_id = $this->sale_lib->get_customer();
|
||||
$data['suspended_sales'] = $this->xss_clean($this->Sale->get_all_suspended($customer_id));
|
||||
$data['dinner_table_enable'] = $this->config->item('dinner_table_enable');
|
||||
$this->load->view('sales/suspended', $data);
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* Unsuspended sales are now left in the tables and are only removed
|
||||
* when they are intentionally cancelled.
|
||||
*/
|
||||
@@ -1387,6 +1439,59 @@ class Sales extends Secure_Controller
|
||||
|
||||
return $filtered_cart;
|
||||
}
|
||||
}
|
||||
|
||||
public function change_item_number()
|
||||
{
|
||||
$item_id = $this->input->post('item_id');
|
||||
$item_number = $this->input->post('item_number');
|
||||
$this->Item->update_item_number($item_id, $item_number);
|
||||
$cart = $this->sale_lib->get_cart();
|
||||
$x = $this->search_cart_for_item_id($item_id, $cart);
|
||||
if($x != NULL)
|
||||
{
|
||||
$cart[$x]['item_number'] = $item_number;
|
||||
}
|
||||
$this->sale_lib->set_cart($cart);
|
||||
}
|
||||
|
||||
public function change_item_name()
|
||||
{
|
||||
$item_id = $this->input->post('item_id');
|
||||
$name = $this->input->post('item_name');
|
||||
$this->Item->update_item_name($item_id, $name);
|
||||
$cart = $this->sale_lib->get_cart();
|
||||
$x = $this->search_cart_for_item_id($item_id, $cart);
|
||||
if($x != NULL) {
|
||||
$cart[$x]['name'] = $name;
|
||||
}
|
||||
$this->sale_lib->set_cart($cart);
|
||||
}
|
||||
|
||||
public function change_item_description()
|
||||
{
|
||||
$item_id = $this->input->post('item_id');
|
||||
$description = $this->input->post('item_description');
|
||||
$this->Item->update_item_description($item_id, $description);
|
||||
$cart = $this->sale_lib->get_cart();
|
||||
$x = $this->search_cart_for_item_id($item_id, $cart);
|
||||
if($x != NULL)
|
||||
{
|
||||
$cart[$x]['description'] = $description;
|
||||
}
|
||||
$this->sale_lib->set_cart($cart);
|
||||
}
|
||||
|
||||
public function search_cart_for_item_id($id, $array)
|
||||
{
|
||||
foreach($array as $key => $val)
|
||||
{
|
||||
if($val['item_id'] === $id)
|
||||
{
|
||||
return $key;
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -22,6 +22,7 @@ class Suppliers extends Persons
|
||||
public function get_row($row_id)
|
||||
{
|
||||
$data_row = $this->xss_clean(get_supplier_data_row($this->Supplier->get_info($row_id)));
|
||||
$data_row['category'] = $this->Supplier->get_category_name($data_row['category']);
|
||||
|
||||
echo json_encode($data_row);
|
||||
}
|
||||
@@ -43,7 +44,9 @@ class Suppliers extends Persons
|
||||
$data_rows = array();
|
||||
foreach($suppliers->result() as $supplier)
|
||||
{
|
||||
$data_rows[] = $this->xss_clean(get_supplier_data_row($supplier));
|
||||
$row = $this->xss_clean(get_supplier_data_row($supplier));
|
||||
$row['category'] = $this->Supplier->get_category_name($row['category']);
|
||||
$data_rows[] = $row;
|
||||
}
|
||||
|
||||
echo json_encode(array('total' => $total_rows, 'rows' => $data_rows));
|
||||
@@ -77,6 +80,7 @@ class Suppliers extends Persons
|
||||
$info->$property = $this->xss_clean($value);
|
||||
}
|
||||
$data['person_info'] = $info;
|
||||
$data['categories'] = $this->Supplier->get_categories();
|
||||
|
||||
$this->load->view("suppliers/form", $data);
|
||||
}
|
||||
@@ -112,7 +116,9 @@ class Suppliers extends Persons
|
||||
$supplier_data = array(
|
||||
'company_name' => $this->input->post('company_name'),
|
||||
'agency_name' => $this->input->post('agency_name'),
|
||||
'account_number' => $this->input->post('account_number') == '' ? NULL : $this->input->post('account_number')
|
||||
'category' => $this->input->post('category'),
|
||||
'account_number' => $this->input->post('account_number') == '' ? NULL : $this->input->post('account_number'),
|
||||
'tax_id' => $this->input->post('tax_id')
|
||||
);
|
||||
|
||||
if($this->Supplier->save_supplier($person_data, $supplier_data, $supplier_id))
|
||||
|
||||
100
application/controllers/Tax_categories.php
Normal file
100
application/controllers/Tax_categories.php
Normal file
@@ -0,0 +1,100 @@
|
||||
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
require_once("Secure_Controller.php");
|
||||
|
||||
class Tax_categories extends Secure_Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct('tax_categories');
|
||||
}
|
||||
|
||||
|
||||
public function index()
|
||||
{
|
||||
$data['tax_categories_table_headers'] = $this->xss_clean(get_tax_categories_table_headers());
|
||||
|
||||
$this->load->view('taxes/tax_categories', $data);
|
||||
}
|
||||
|
||||
/*
|
||||
* Returns tax_category 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_categories = $this->Tax_category->search($search, $limit, $offset, $sort, $order);
|
||||
$total_rows = $this->Tax_category->get_found_rows($search);
|
||||
|
||||
$data_rows = array();
|
||||
foreach($tax_categories->result() as $tax_category)
|
||||
{
|
||||
$data_rows[] = $this->xss_clean(get_tax_category_data_row($tax_category));
|
||||
}
|
||||
|
||||
echo json_encode(array('total' => $total_rows, 'rows' => $data_rows));
|
||||
}
|
||||
|
||||
public function get_row($row_id)
|
||||
{
|
||||
$data_row = $this->xss_clean(get_tax_category_data_row($this->Tax_category->get_info($row_id)));
|
||||
|
||||
echo json_encode($data_row);
|
||||
}
|
||||
|
||||
public function view($tax_category_id = -1)
|
||||
{
|
||||
$data['tax_category_info'] = $this->Tax_category->get_info($tax_category_id);
|
||||
|
||||
$this->load->view("taxes/tax_category_form", $data);
|
||||
}
|
||||
|
||||
|
||||
public function save($tax_category_id = -1)
|
||||
{
|
||||
$tax_category_data = array(
|
||||
'tax_category' => $this->input->post('tax_category'),
|
||||
'tax_category_code' => $this->input->post('tax_category_code'),
|
||||
'tax_group_sequence' => $this->input->post('tax_group_sequence')
|
||||
);
|
||||
|
||||
if($this->Tax_category->save($tax_category_data, $tax_category_id))
|
||||
{
|
||||
$tax_category_data = $this->xss_clean($tax_category_data);
|
||||
|
||||
// New tax_category_id
|
||||
if($tax_category_id == -1)
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('taxes_categories_successful_adding'), 'id' => $tax_category_data['tax_category_id']));
|
||||
}
|
||||
else
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('taxes_categories_successful_updating'), 'id' => $tax_category_id));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('taxes_categories_error_adding_updating') . ' ' . $tax_category_data['tax_category'], 'id' => -1));
|
||||
}
|
||||
}
|
||||
|
||||
public function delete()
|
||||
{
|
||||
$tax_categories_to_delete = $this->input->post('ids');
|
||||
|
||||
if($this->Tax_category->delete_list($tax_categories_to_delete))
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('taxes_categories_successful_deleted') . ' ' . count($tax_categories_to_delete) . ' ' . $this->lang->line('taxes_categories_one_or_multiple')));
|
||||
}
|
||||
else
|
||||
{
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('taxes_categories_cannot_be_deleted')));
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
104
application/controllers/Tax_codes.php
Normal file
104
application/controllers/Tax_codes.php
Normal file
@@ -0,0 +1,104 @@
|
||||
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
require_once("Secure_Controller.php");
|
||||
|
||||
class Tax_codes extends Secure_Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct('tax_codes');
|
||||
}
|
||||
|
||||
|
||||
public function index()
|
||||
{
|
||||
$this->load->view('taxes/tax_codes',get_data());
|
||||
}
|
||||
|
||||
public function get_data()
|
||||
{
|
||||
$data['table_headers'] = $this->xss_clean(get_tax_codes_table_headers());
|
||||
return $data;
|
||||
}
|
||||
|
||||
/*
|
||||
* Returns tax_category 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_code->search($search, $limit, $offset, $sort, $order);
|
||||
$total_rows = $this->Tax_code->get_found_rows($search);
|
||||
|
||||
$data_rows = array();
|
||||
foreach($tax_codes->result() as $tax_code)
|
||||
{
|
||||
$data_rows[] = $this->xss_clean(get_tax_code_data_row($tax_code));
|
||||
}
|
||||
|
||||
echo json_encode(array('total' => $total_rows, 'rows' => $data_rows));
|
||||
}
|
||||
|
||||
public function get_row($row_id)
|
||||
{
|
||||
$data_row = $this->xss_clean(get_tax_code_data_row($this->Tax_code->get_info($row_id)));
|
||||
|
||||
echo json_encode($data_row);
|
||||
}
|
||||
|
||||
public function view($tax_code_id = -1)
|
||||
{
|
||||
$data['tax_code_info'] = $this->Tax_code->get_info($tax_code_id);
|
||||
|
||||
$this->load->view("taxes/tax_code_form", $data);
|
||||
}
|
||||
|
||||
|
||||
public function save($tax_code_id = -1)
|
||||
{
|
||||
$tax_code_data = array(
|
||||
'tax_code' => $this->input->post('tax_code'),
|
||||
'tax_code_name' => $this->input->post('tax_code_name'),
|
||||
'city' => $this->input->post('city'),
|
||||
'state' => $this->input->post('state')
|
||||
);
|
||||
|
||||
if($this->Tax_code->save($tax_code_data))
|
||||
{
|
||||
$tax_code_data = $this->xss_clean($tax_code_data);
|
||||
|
||||
if($tax_code_id == -1)
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('taxes_codes_successful_adding'), 'id' => $tax_code_data['tax_code_id']));
|
||||
}
|
||||
else
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('taxes_codes_successful_updating'), 'id' => $tax_code_id));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('taxes_codes_error_adding_updating') . ' ' . $tax_code_data['tax_code_id'], 'id' => -1));
|
||||
}
|
||||
}
|
||||
|
||||
public function delete()
|
||||
{
|
||||
$tax_codes_to_delete = $this->input->post('ids');
|
||||
|
||||
if($this->Tax_code->delete_list($tax_codes_to_delete))
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('taxes_codes_successful_deleted') . ' ' . count($tax_codes_to_delete) . ' ' . $this->lang->line('taxes_codes_one_or_multiple')));
|
||||
}
|
||||
else
|
||||
{
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('taxes_codes_cannot_be_deleted')));
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
98
application/controllers/Tax_jurisdictions.php
Normal file
98
application/controllers/Tax_jurisdictions.php
Normal file
@@ -0,0 +1,98 @@
|
||||
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
require_once("Secure_Controller.php");
|
||||
|
||||
class Tax_jurisdictions extends Secure_Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct('tax_jurisdictions');
|
||||
}
|
||||
|
||||
|
||||
public function index()
|
||||
{
|
||||
$data['table_headers'] = $this->xss_clean(get_tax_jurisdictions_table_headers());
|
||||
|
||||
$this->load->view('taxes/tax_jurisdictions', $data);
|
||||
}
|
||||
|
||||
/*
|
||||
* Returns tax_category 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_jurisdictions = $this->Tax_jurisdiction->search($search, $limit, $offset, $sort, $order);
|
||||
$total_rows = $this->Tax_jurisdiction->get_found_rows($search);
|
||||
|
||||
$data_rows = array();
|
||||
foreach($tax_jurisdictions->result() as $tax_jurisdiction)
|
||||
{
|
||||
$data_rows[] = $this->xss_clean(get_tax_jurisdiction_data_row($tax_jurisdiction));
|
||||
}
|
||||
|
||||
echo json_encode(array('total' => $total_rows, 'rows' => $data_rows));
|
||||
}
|
||||
|
||||
public function get_row($row_id)
|
||||
{
|
||||
$data_row = $this->xss_clean(get_tax_jurisdiction_data_row($this->Tax_jurisdiction->get_info($row_id)));
|
||||
|
||||
echo json_encode($data_row);
|
||||
}
|
||||
|
||||
public function view($tax_jurisdiction_id = -1)
|
||||
{
|
||||
$data['tax_jurisdiction_info'] = $this->Tax_jurisdiction->get_info($tax_jurisdiction_id);
|
||||
|
||||
$this->load->view("taxes/tax_jurisdiction_form", $data);
|
||||
}
|
||||
|
||||
|
||||
public function save($jurisdiction_id = -1)
|
||||
{
|
||||
$tax_jurisdiction_data = array(
|
||||
'jurisdiction_name' => $this->input->post('jurisdiction_name'),
|
||||
'reporting_authority' => $this->input->post('reporting_authority')
|
||||
);
|
||||
|
||||
if($this->Tax_jurisdiction->save($tax_jurisdiction_data))
|
||||
{
|
||||
$tax_jurisdiction_data = $this->xss_clean($tax_jurisdiction_data);
|
||||
|
||||
if($jurisdiction_id == -1)
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('taxes_jurisdictions_successful_adding'), 'id' => $tax_jurisdiction_data['jurisdiction_id']));
|
||||
}
|
||||
else
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('taxes_jurisdictions_successful_updating'), 'id' => $jurisdiction_id));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('taxes_jurisdictions_error_adding_updating') . ' ' . $tax_jurisdiction_data['jurisdiction_name'], 'id' => -1));
|
||||
}
|
||||
}
|
||||
|
||||
public function delete()
|
||||
{
|
||||
$tax_jurisdictions_to_delete = $this->input->post('ids');
|
||||
|
||||
if($this->Tax_jurisdiction->delete_list($tax_jurisdictions_to_delete))
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('taxes_jurisdictions_successful_deleted') . ' ' . count($tax_jurisdictions_to_delete) . ' ' . $this->lang->line('taxes_jurisdictions_one_or_multiple')));
|
||||
}
|
||||
else
|
||||
{
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('taxes_jurisdictions_cannot_be_deleted')));
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -9,16 +9,46 @@ class Taxes extends Secure_Controller
|
||||
parent::__construct('taxes');
|
||||
|
||||
$this->load->model('enums/Rounding_mode');
|
||||
|
||||
$this->load->library('tax_lib');
|
||||
$this->load->helper('tax_helper');
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
$data['table_headers'] = $this->xss_clean(get_taxes_manage_table_headers());
|
||||
$data['tax_codes'] = $this->xss_clean($this->Tax_code->get_all()->result_array());
|
||||
if (count($data['tax_codes']) == 0)
|
||||
{
|
||||
$data['tax_codes'] = $this->Tax_code->get_empty_row();
|
||||
}
|
||||
$data['tax_categories'] = $this->xss_clean($this->Tax_category->get_all()->result_array());
|
||||
if (count($data['tax_categories']) == 0)
|
||||
{
|
||||
$data['tax_categories'] = $this->Tax_category->get_empty_row();
|
||||
}
|
||||
$data['tax_jurisdictions'] = $this->xss_clean($this->Tax_jurisdiction->get_all()->result_array());
|
||||
if (count($data['tax_jurisdictions']) == 0)
|
||||
{
|
||||
$data['tax_jurisdictions'] = $this->Tax_jurisdiction->get_empty_row();
|
||||
}
|
||||
$data['tax_rate_table_headers'] = $this->xss_clean(get_tax_rates_manage_table_headers());
|
||||
$data['tax_categories_table_headers'] = $this->xss_clean(get_tax_categories_table_headers());
|
||||
$data['tax_types'] = $this->tax_lib->get_tax_types();
|
||||
|
||||
if($this->config->item('tax_included') == '1')
|
||||
{
|
||||
$data['default_tax_type'] = Tax_lib::TAX_TYPE_INCLUDED;
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['default_tax_type'] = Tax_lib::TAX_TYPE_EXCLUDED;
|
||||
}
|
||||
|
||||
$data['tax_type_options'] = $this->tax_lib->get_tax_type_options($data['default_tax_type']);
|
||||
|
||||
$this->load->view('taxes/manage', $data);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Returns tax_codes table data rows. This will be called with AJAX.
|
||||
*/
|
||||
@@ -30,14 +60,14 @@ class Taxes extends Secure_Controller
|
||||
$sort = $this->input->get('sort');
|
||||
$order = $this->input->get('order');
|
||||
|
||||
$tax_codes = $this->Tax->search($search, $limit, $offset, $sort, $order);
|
||||
$tax_rates = $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)
|
||||
foreach($tax_rates->result() as $tax_rate_row)
|
||||
{
|
||||
$data_rows[] = $this->xss_clean(get_tax_data_row($tax_code_row));
|
||||
$data_rows[] = $this->xss_clean(get_tax_rates_data_row($tax_rate_row));
|
||||
}
|
||||
|
||||
echo json_encode(array('total' => $total_rows, 'rows' => $data_rows));
|
||||
@@ -58,7 +88,7 @@ class Taxes extends Secure_Controller
|
||||
*/
|
||||
public function suggest_tax_categories()
|
||||
{
|
||||
$suggestions = $this->xss_clean($this->Tax->get_tax_category_suggestions($this->input->post('term')));
|
||||
$suggestions = $this->xss_clean($this->Tax_category->get_tax_category_suggestions($this->input->post('term')));
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
@@ -66,12 +96,12 @@ class Taxes extends Secure_Controller
|
||||
|
||||
public function get_row($row_id)
|
||||
{
|
||||
$data_row = $this->xss_clean(get_tax_codes_data_row($this->Tax->get_info($row_id), $this));
|
||||
$data_row = $this->xss_clean(get_tax_rates_data_row($this->Tax->get_info($row_id), $this));
|
||||
|
||||
echo json_encode($data_row);
|
||||
}
|
||||
|
||||
public function view($tax_code = -1)
|
||||
public function view_tax_codes($tax_code = -1)
|
||||
{
|
||||
$tax_code_info = $this->Tax->get_info($tax_code);
|
||||
|
||||
@@ -80,6 +110,15 @@ class Taxes extends Secure_Controller
|
||||
|
||||
$tax_rate_info = $this->Tax->get_rate_info($tax_code, $default_tax_category_id);
|
||||
|
||||
if($this->config->item('tax_included') == '1')
|
||||
{
|
||||
$data['default_tax_type'] = Tax_lib::TAX_TYPE_INCLUDED;
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['default_tax_type'] = Tax_lib::TAX_TYPE_EXCLUDED;
|
||||
}
|
||||
|
||||
$data['rounding_options'] = Rounding_mode::get_rounding_options();
|
||||
$data['html_rounding_options'] = $this->get_html_rounding_options();
|
||||
|
||||
@@ -114,21 +153,197 @@ class Taxes extends Secure_Controller
|
||||
|
||||
$data = $this->xss_clean($data);
|
||||
|
||||
$tax_code_rates = array();
|
||||
$tax_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_rate_row = array();
|
||||
$tax_rate_row['rate_tax_category_id'] = $this->xss_clean($tax_code_rate['rate_tax_category_id']);
|
||||
$tax_rate_row['tax_category'] = $this->xss_clean($tax_code_rate['tax_category']);
|
||||
$tax_rate_row['tax_rate'] = $this->xss_clean($tax_code_rate['tax_rate']);
|
||||
$tax_rate_row['rounding_code'] = $this->xss_clean($tax_code_rate['rounding_code']);
|
||||
|
||||
$tax_code_rates[] = $tax_code_row;
|
||||
$tax_rates[] = $tax_rate_row;
|
||||
}
|
||||
|
||||
$data['tax_code_rates'] = $tax_code_rates;
|
||||
$data['tax_rates'] = $tax_rates;
|
||||
|
||||
$this->load->view("taxes/form", $data);
|
||||
$this->load->view('taxes/tax_code_form', $data);
|
||||
}
|
||||
|
||||
|
||||
public function view($tax_rate_id = -1)
|
||||
{
|
||||
|
||||
$tax_rate_info = $this->Tax->get_info($tax_rate_id);
|
||||
|
||||
$data['tax_rate_id'] = $tax_rate_id;
|
||||
$data['rounding_options'] = Rounding_mode::get_rounding_options();
|
||||
|
||||
$data['tax_code_options'] = $this->tax_lib->get_tax_code_options();
|
||||
$data['tax_category_options'] = $this->tax_lib->get_tax_category_options();
|
||||
$data['tax_jurisdiction_options'] = $this->tax_lib->get_tax_jurisdiction_options();
|
||||
|
||||
if($tax_rate_id == -1)
|
||||
{
|
||||
$data['rate_tax_code_id'] = $this->config->item('default_tax_code');
|
||||
$data['rate_tax_category_id'] = $this->config->item('default_tax_category');
|
||||
$data['rate_jurisdiction_id'] = $this->config->item('default_tax_jurisdiction');
|
||||
$data['tax_rounding_code'] = Rounding_mode::HALF_UP;
|
||||
$data['tax_rate'] = '0.0000';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['rate_tax_code_id'] = $tax_rate_info->rate_tax_code_id;
|
||||
$data['rate_tax_code'] = $tax_rate_info->tax_code;
|
||||
$data['rate_tax_category_id'] = $tax_rate_info->rate_tax_category_id;
|
||||
$data['rate_jurisdiction_id'] = $tax_rate_info->rate_jurisdiction_id;
|
||||
$data['tax_rounding_code'] = $tax_rate_info->tax_rounding_code;
|
||||
$data['tax_rate'] = $tax_rate_info->tax_rate;
|
||||
}
|
||||
|
||||
$data = $this->xss_clean($data);
|
||||
|
||||
$this->load->view('taxes/tax_rates_form', $data);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function view_tax_categories($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($this->config->item('tax_included') == '1')
|
||||
{
|
||||
$data['default_tax_type'] = Tax_lib::TAX_TYPE_INCLUDED;
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['default_tax_type'] = Tax_lib::TAX_TYPE_EXCLUDED;
|
||||
}
|
||||
|
||||
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_rates = array();
|
||||
foreach($this->Tax->get_tax_code_rate_exceptions($tax_code) as $tax_code_rate)
|
||||
{
|
||||
$tax_rate_row = array();
|
||||
$tax_rate_row['rate_tax_category_id'] = $this->xss_clean($tax_code_rate['rate_tax_category_id']);
|
||||
$tax_rate_row['tax_category'] = $this->xss_clean($tax_code_rate['tax_category']);
|
||||
$tax_rate_row['tax_rate'] = $this->xss_clean($tax_code_rate['tax_rate']);
|
||||
$tax_rate_row['rounding_code'] = $this->xss_clean($tax_code_rate['rounding_code']);
|
||||
|
||||
$tax_rates[] = $tax_rate_row;
|
||||
}
|
||||
|
||||
$data['tax_rates'] = $tax_rates;
|
||||
|
||||
$this->load->view('taxes/tax_category_form', $data);
|
||||
}
|
||||
|
||||
public function view_tax_jurisdictions($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($this->config->item('tax_included') == '1')
|
||||
{
|
||||
$data['default_tax_type'] = Tax_lib::TAX_TYPE_INCLUDED;
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['default_tax_type'] = Tax_lib::TAX_TYPE_EXCLUDED;
|
||||
}
|
||||
|
||||
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_rates = array();
|
||||
foreach($this->Tax->get_tax_code_rate_exceptions($tax_code) as $tax_code_rate)
|
||||
{
|
||||
$tax_rate_row = array();
|
||||
$tax_rate_row['rate_tax_category_id'] = $this->xss_clean($tax_code_rate['rate_tax_category_id']);
|
||||
$tax_rate_row['tax_category'] = $this->xss_clean($tax_code_rate['tax_category']);
|
||||
$tax_rate_row['tax_rate'] = $this->xss_clean($tax_code_rate['tax_rate']);
|
||||
$tax_rate_row['rounding_code'] = $this->xss_clean($tax_code_rate['rounding_code']);
|
||||
|
||||
$tax_rates[] = $tax_rate_row;
|
||||
}
|
||||
|
||||
$data['tax_rates'] = $tax_rates;
|
||||
|
||||
$this->load->view('taxes/tax_jurisdiction_form', $data);
|
||||
}
|
||||
|
||||
public static function get_html_rounding_options()
|
||||
@@ -136,63 +351,37 @@ class Taxes extends Secure_Controller
|
||||
return Rounding_mode::get_html_rounding_options();
|
||||
}
|
||||
|
||||
public function save($tax_code = -1)
|
||||
public function save($tax_rate_id = -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_category_id = $this->input->post('rate_tax_category_id');
|
||||
$tax_rate = parse_tax($this->input->post('tax_rate'));
|
||||
|
||||
if ($tax_rate == 0) {
|
||||
$tax_category_info = $this->Tax_category->get_info($tax_category_id);
|
||||
}
|
||||
|
||||
$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')
|
||||
'rate_tax_code_id' => $this->input->post('rate_tax_code_id'),
|
||||
'rate_tax_category_id' => $this->input->post('rate_tax_category_id'),
|
||||
'rate_jurisdiction_id' => $this->input->post('rate_jurisdiction_id'),
|
||||
'tax_rate' => $tax_rate,
|
||||
'tax_rounding_code' => $this->input->post('tax_rounding_code')
|
||||
);
|
||||
|
||||
if($this->Tax->save($tax_code_data, $tax_rate_data, $tax_code))
|
||||
if($this->Tax->save($tax_rate_data, $tax_rate_id))
|
||||
{
|
||||
$tax_code_rate_exceptions = array();
|
||||
if(!empty($this->input->post('exception_tax_rate')))
|
||||
if($tax_rate_id == -1)
|
||||
{
|
||||
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));
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('taxes_tax_rate_successfully_added')));
|
||||
}
|
||||
else //Existing tax_code
|
||||
{
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('taxes_tax_code_successful_updated') . ' ' . $entered_tax_code));
|
||||
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('taxes_tax_rate_successful_updated')));
|
||||
}
|
||||
}
|
||||
else //failure
|
||||
else
|
||||
{
|
||||
$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));
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('taxes_tax_rate_error_adding_updating')));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -209,12 +398,145 @@ class Taxes extends Secure_Controller
|
||||
}
|
||||
}
|
||||
|
||||
public function suggest_sales_tax_codes()
|
||||
public function suggest_tax_codes()
|
||||
{
|
||||
$suggestions = $this->xss_clean($this->Tax->get_sales_tax_codes_search_suggestions($this->input->post_get('term')));
|
||||
$suggestions = $this->xss_clean($this->Tax_code->get_tax_codes_search_suggestions($this->input->post_get('term')));
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
|
||||
|
||||
public function save_tax_codes()
|
||||
{
|
||||
$tax_code_id = $this->input->post('tax_code_id');
|
||||
$tax_code = $this->input->post('tax_code');
|
||||
$tax_code_name = $this->input->post('tax_code_name');
|
||||
$tax_code_id = $this->input->post('tax_code_id');
|
||||
$city = $this->input->post('city');
|
||||
$state = $this->input->post('state');
|
||||
|
||||
$array_save = array();
|
||||
foreach($tax_code_id as $key=>$val)
|
||||
{
|
||||
$array_save[] = array('tax_code_id'=>$this->xss_clean($val), 'tax_code'=>$this->xss_clean($tax_code[$key]),
|
||||
'tax_code_name'=>$this->xss_clean($tax_code_name[$key]), 'tax_code_id'=>$this->xss_clean($tax_code_id[$key]),
|
||||
'city'=>$this->xss_clean($city[$key]), 'state'=>$this->xss_clean($state[$key]));
|
||||
}
|
||||
|
||||
$success = $this->Tax_code->save_tax_codes($array_save);
|
||||
|
||||
echo json_encode(array(
|
||||
'success' => $success,
|
||||
'message' => $this->lang->line('taxes_tax_codes_saved_' . ($success ? '' : 'un') . 'successfully')
|
||||
));
|
||||
}
|
||||
|
||||
public function save_tax_jurisdictions()
|
||||
{
|
||||
$jurisdiction_id = $this->input->post('jurisdiction_id');
|
||||
$jurisdiction_name = $this->input->post('jurisdiction_name');
|
||||
$tax_group = $this->input->post('tax_group');
|
||||
$tax_type = $this->input->post('tax_type');
|
||||
$reporting_authority = $this->input->post('reporting_authority');
|
||||
$tax_group_sequence = $this->input->post('tax_group_sequence');
|
||||
$cascade_sequence = $this->input->post('cascade_sequence');
|
||||
|
||||
$array_save = array();
|
||||
|
||||
$unique_tax_groups = [];
|
||||
|
||||
foreach($jurisdiction_id as $key => $val)
|
||||
{
|
||||
$array_save[] = array(
|
||||
'jurisdiction_id'=>$this->xss_clean($val),
|
||||
'jurisdiction_name'=>$this->xss_clean($jurisdiction_name[$key]),
|
||||
'tax_group'=>$this->xss_clean($tax_group[$key]),
|
||||
'tax_type'=>$this->xss_clean($tax_type[$key]),
|
||||
'reporting_authority'=>$this->xss_clean($reporting_authority[$key]),
|
||||
'tax_group_sequence'=>$this->xss_clean($tax_group_sequence[$key]),
|
||||
'cascade_sequence'=>$this->xss_clean($cascade_sequence[$key]));
|
||||
|
||||
if (array_search($tax_group[$key], $unique_tax_groups) !== false)
|
||||
{
|
||||
echo json_encode(array(
|
||||
'success' => FALSE,
|
||||
'message' => $this->lang->line('taxes_tax_group_not_unique', $tax_group[$key])
|
||||
));
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
$unique_tax_groups[] = $tax_group[$key];
|
||||
}
|
||||
}
|
||||
|
||||
$success = $this->Tax_jurisdiction->save_jurisdictions($array_save);
|
||||
|
||||
echo json_encode(array(
|
||||
'success' => $success,
|
||||
'message' => $this->lang->line('taxes_tax_jurisdictions_saved_' . ($success ? '' : 'un') . 'successfully')
|
||||
));
|
||||
}
|
||||
|
||||
public function save_tax_categories()
|
||||
{
|
||||
$tax_category_id = $this->input->post('tax_category_id');
|
||||
$tax_category = $this->input->post('tax_category');
|
||||
$tax_group_sequence = $this->input->post('tax_group_sequence');
|
||||
|
||||
$array_save= array();
|
||||
|
||||
foreach($tax_category_id as $key => $val)
|
||||
{
|
||||
$array_save[] = array(
|
||||
'tax_category_id'=>$this->xss_clean($val),
|
||||
'tax_category'=>$this->xss_clean($tax_category[$key]),
|
||||
'tax_group_sequence'=>$this->xss_clean($tax_group_sequence[$key]));
|
||||
}
|
||||
|
||||
$success = $this->Tax_category->save_categories($array_save);
|
||||
|
||||
echo json_encode(array(
|
||||
'success' => $success,
|
||||
'message' => $this->lang->line('taxes_tax_categories_saved_' . ($success ? '' : 'un') . 'successfully')
|
||||
));
|
||||
}
|
||||
|
||||
public function ajax_tax_codes()
|
||||
{
|
||||
$tax_codes = $this->Tax_code->get_all()->result_array();
|
||||
|
||||
$tax_codes = $this->xss_clean($tax_codes);
|
||||
|
||||
$this->load->view('partial/tax_codes', array('tax_codes' => $tax_codes));
|
||||
}
|
||||
|
||||
public function ajax_tax_categories()
|
||||
{
|
||||
$tax_categories = $this->Tax_category->get_all()->result_array();
|
||||
|
||||
$tax_categories = $this->xss_clean($tax_categories);
|
||||
|
||||
$this->load->view('partial/tax_categories', array('tax_categories' => $tax_categories));
|
||||
}
|
||||
|
||||
public function ajax_tax_jurisdictions()
|
||||
{
|
||||
$tax_jurisdictions = $this->Tax_jurisdiction->get_all()->result_array();
|
||||
|
||||
if($this->config->item('tax_included') == '1')
|
||||
{
|
||||
$default_tax_type = Tax_lib::TAX_TYPE_INCLUDED;
|
||||
}
|
||||
else
|
||||
{
|
||||
$default_tax_type = Tax_lib::TAX_TYPE_EXCLUDED;
|
||||
}
|
||||
|
||||
$tax_jurisdictions = $this->xss_clean($tax_jurisdictions);
|
||||
$tax_types = $this->tax_lib->get_tax_types();
|
||||
|
||||
$this->load->view('partial/tax_jurisdictions', array('tax_jurisdictions' => $tax_jurisdictions, 'tax_types' => $tax_types, 'default_tax_type' => $default_tax_type));
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
57
application/core/MY_Security.php
Normal file
57
application/core/MY_Security.php
Normal file
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
defined('BASEPATH') or exit('No direct script access allowed');
|
||||
|
||||
class MY_Security extends CI_Security
|
||||
{
|
||||
/**
|
||||
* CSRF Set Cookie with samesite
|
||||
*
|
||||
* @codeCoverageIgnore
|
||||
* @return CI_Security
|
||||
*/
|
||||
public function csrf_set_cookie()
|
||||
{
|
||||
$expire = time() + $this->_csrf_expire;
|
||||
$secure_cookie = (bool)config_item('cookie_secure');
|
||||
|
||||
if ($secure_cookie && !is_https())
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
$path = config_item('cookie_path');
|
||||
|
||||
if (PHP_VERSION_ID < 70300) {
|
||||
|
||||
if (is_https())
|
||||
{
|
||||
$path .= '; samesite=strict';
|
||||
}
|
||||
|
||||
setcookie($this->_csrf_cookie_name,
|
||||
$this->_csrf_hash, $expire,
|
||||
$path,
|
||||
config_item('cookie_domain'),
|
||||
$secure_cookie,
|
||||
FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
$samesite = is_https() ? 'None' : 'Strict';
|
||||
|
||||
setcookie($this->_csrf_cookie_name,
|
||||
$this->_csrf_hash,
|
||||
['samesite' => $samesite,
|
||||
'secure' => $secure_cookie,
|
||||
'expires' => $expire,
|
||||
'path' => config_item('cookie_path'),
|
||||
'domain' => config_item('cookie_domain'),
|
||||
'httponly' => FALSE]);
|
||||
}
|
||||
|
||||
|
||||
log_message('info', 'CSRF cookie sent');
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
@@ -4,25 +4,13 @@
|
||||
* PDF helper
|
||||
*/
|
||||
|
||||
function pdf_create($html, $filename = '')
|
||||
function create_pdf($html, $filename = '')
|
||||
{
|
||||
// need to enable magic quotes for the
|
||||
$magic_quotes_enabled = get_magic_quotes_runtime();
|
||||
|
||||
if(!$magic_quotes_enabled)
|
||||
{
|
||||
ini_set('magic_quotes_runtime', TRUE);
|
||||
}
|
||||
|
||||
$dompdf = new Dompdf\Dompdf();
|
||||
$dompdf->loadHtml($html);
|
||||
$dompdf = new Dompdf\Dompdf(array("isRemoteEnabled" => TRUE, "isPhpEnabled" => TRUE));
|
||||
$dompdf->loadHtml(str_replace(array("\n", "\r"), '', $html));
|
||||
$dompdf->render();
|
||||
|
||||
if(!$magic_quotes_enabled)
|
||||
{
|
||||
ini_set('magic_quotes_runtime', $magic_quotes_enabled);
|
||||
}
|
||||
|
||||
|
||||
if($filename != '')
|
||||
{
|
||||
$dompdf->stream($filename . '.pdf');
|
||||
|
||||
110
application/helpers/importfile_helper.php
Normal file
110
application/helpers/importfile_helper.php
Normal file
@@ -0,0 +1,110 @@
|
||||
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* Generates the header content for the import_items.csv file
|
||||
*
|
||||
* @return string Comma separated headers for the CSV file
|
||||
*/
|
||||
function generate_import_items_csv($stock_locations,$attributes)
|
||||
{
|
||||
$csv_headers = pack("CCC",0xef,0xbb,0xbf); //Encode the Byte-Order Mark (BOM) so that UTF-8 File headers display properly in Microsoft Excel
|
||||
$csv_headers .= 'Barcode,"Item Name",Category,"Supplier ID","Cost Price","Unit Price","Tax 1 Name","Tax 1 Percent","Tax 2 Name","Tax 2 Percent","Reorder Level",Description,"Allow Alt Description","Item has Serial Number",item_image,HSN';
|
||||
$csv_headers .= generate_stock_location_headers($stock_locations);
|
||||
$csv_headers .= generate_attribute_headers($attributes);
|
||||
|
||||
return $csv_headers;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates a list of stock location names as a string
|
||||
*
|
||||
* @return string Comma-separated list of stock location names
|
||||
*/
|
||||
function generate_stock_location_headers($locations)
|
||||
{
|
||||
$location_headers = "";
|
||||
|
||||
foreach($locations as $location_id => $location_name)
|
||||
{
|
||||
$location_headers .= ',"location_' . $location_name . '"';
|
||||
}
|
||||
|
||||
return $location_headers;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates a list of attribute names as a string
|
||||
*
|
||||
* @return string Comma-separated list of attribute names
|
||||
*/
|
||||
function generate_attribute_headers($attribute_names)
|
||||
{
|
||||
$attribute_headers = "";
|
||||
unset($attribute_names[-1]);
|
||||
|
||||
foreach($attribute_names as $attribute_name)
|
||||
{
|
||||
$attribute_headers .= ',"attribute_' . $attribute_name . '"';
|
||||
}
|
||||
|
||||
return $attribute_headers;
|
||||
}
|
||||
|
||||
/**
|
||||
* Read the contents of a given CSV formatted file into a two-dimensional array
|
||||
*
|
||||
* @param string $file_name Name of the file to read.
|
||||
* @return boolean|array[][] two-dimensional array with the file contents or FALSE on failure.
|
||||
*/
|
||||
function get_csv_file($file_name)
|
||||
{
|
||||
ini_set("auto_detect_line_endings", true);
|
||||
|
||||
if(($csv_file = fopen($file_name,'r')) !== FALSE)
|
||||
{
|
||||
//Skip Byte-Order Mark
|
||||
if(bom_exists($csv_file) === TRUE)
|
||||
{
|
||||
fseek($csv_file, 3);
|
||||
}
|
||||
|
||||
while (($data = fgetcsv($csv_file)) !== FALSE)
|
||||
{
|
||||
//Skip empty lines
|
||||
if(array(null) !== $data)
|
||||
{
|
||||
$line_array[] = $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return $line_array;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks the first three characters of a file for the Byte-Order Mark then returns the file position to the first character.
|
||||
*
|
||||
* @param object $file_handle File handle to check
|
||||
* @return bool Returns TRUE if the BOM exists and FALSE otherwise.
|
||||
*/
|
||||
function bom_exists(&$file_handle)
|
||||
{
|
||||
$str = fread($file_handle,3);
|
||||
rewind($file_handle);
|
||||
|
||||
$bom = pack("CCC", 0xef, 0xbb, 0xbf);
|
||||
|
||||
if (0 === strncmp($str, $bom, 3))
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -1,5 +1,13 @@
|
||||
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
const DEFAULT_LANGUAGE = 'english';
|
||||
const DEFAULT_LANGUAGE_CODE = 'en-US';
|
||||
|
||||
define('NOW', time());
|
||||
define('MAX_PRECISION', 1e14);
|
||||
define('DEFAULT_DATE', mktime(0, 0, 0, 1, 1, 2010));
|
||||
define('DEFAULT_DATETIME', mktime(0, 0, 0, 1, 1, 2010));
|
||||
|
||||
/**
|
||||
* Currency locale helper
|
||||
*/
|
||||
@@ -11,14 +19,17 @@ function current_language_code($load_system_language = FALSE)
|
||||
// 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 != '')
|
||||
$employee_info = $employee->get_logged_in_employee_info();
|
||||
|
||||
if(property_exists($employee_info, 'language_code') && !empty($employee_info->language_code))
|
||||
{
|
||||
return $employee_language_code;
|
||||
return $employee_info->language_code;
|
||||
}
|
||||
}
|
||||
|
||||
return get_instance()->config->item('language_code');
|
||||
$language_code = get_instance()->config->item('language_code');
|
||||
|
||||
return empty($language_code) ? DEFAULT_LANGUAGE_CODE : $language_code;
|
||||
}
|
||||
|
||||
function current_language($load_system_language = FALSE)
|
||||
@@ -28,42 +39,60 @@ function current_language($load_system_language = FALSE)
|
||||
// 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 != '')
|
||||
$employee_info = $employee->get_logged_in_employee_info();
|
||||
if(property_exists($employee_info, 'language') && !empty($employee_info->language))
|
||||
{
|
||||
return $employee_language;
|
||||
return $employee_info->language;
|
||||
}
|
||||
}
|
||||
|
||||
return get_instance()->config->item('language');
|
||||
$language = get_instance()->config->item('language');
|
||||
|
||||
return empty($language) ? DEFAULT_LANGUAGE : $language;
|
||||
}
|
||||
|
||||
function get_languages()
|
||||
{
|
||||
return array(
|
||||
'ar-EG:arabic' => 'Arabic (Egypt)',
|
||||
'ar-LB:arabic' => 'Arabic (Lebanon)',
|
||||
'az-AZ:azerbaijani' => 'Azerbaijani (Azerbaijan)',
|
||||
'bg:bulgarian' => 'Bulgarian',
|
||||
'cs:czech' => 'Czech',
|
||||
'da:danish' => 'Danish',
|
||||
'de:german' => 'German (Germany)',
|
||||
'de-CH:german' => 'German (Swiss)',
|
||||
'el:greek' => 'Greek',
|
||||
'en-GB:english' => 'English (Great Britain)',
|
||||
'en-US:english' => 'English (United States)',
|
||||
'es:spanish' => 'Spanish',
|
||||
'es-MX:spanish' => 'Spanish (Mexico)',
|
||||
'fr:french' => 'French',
|
||||
'fa-IR:persian' => 'Farsi (Iran)',
|
||||
'he:english' => 'Hebrew',
|
||||
'hr-HR:croatian' => 'Croatian (Croatia)',
|
||||
'hu-HU:hungarian' => 'Hungarian (Hungary)',
|
||||
'hy:armenian' => 'Armenian',
|
||||
'id:indonesian' => 'Indonesian',
|
||||
'it:italian' => 'Italian',
|
||||
'km:khmer' => 'Central Khmer (Cambodia)',
|
||||
'lo:lao' => 'Lao (Laos)',
|
||||
'ml:malay' => 'Malay',
|
||||
'nb:norwegian' => 'Norwegian',
|
||||
'nl:dutch' => 'Dutch',
|
||||
'nl-BE:dutch' => 'Dutch (Belgium)',
|
||||
'pt-BR:portuguese-brazilian' => 'Portuguese (Brazil)',
|
||||
'pl:polish' => 'Polish',
|
||||
'pt-BR:portuguese' => 'Portuguese (Brazil)',
|
||||
'ro:romanian' => 'Romanian',
|
||||
'ru:russian' => 'Russian',
|
||||
'sv:swedish' => 'Swedish',
|
||||
'th:thai' => 'Thai',
|
||||
'tl-PH:talong' => 'Tagalog (Philippines)',
|
||||
'tr:turkish' => 'Turkish',
|
||||
'ur-PK:urdu' => 'Urdu (Islamic Republic of Pakistan)',
|
||||
'vi:vietnamese' => 'Vietnamese',
|
||||
'zh:simplified-chinese' => 'Chinese'
|
||||
'zh-Hans:simplified-chinese' => 'Chinese Simplified Script',
|
||||
'zh-Hant:traditional-chinese' => 'Chinese Traditional Script'
|
||||
);
|
||||
}
|
||||
|
||||
@@ -103,10 +132,11 @@ function get_timezones()
|
||||
'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',
|
||||
'America/Mexico_City' => '(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/Cancun' => '(GMT-05:00) Cancun',
|
||||
'America/Havana' => '(GMT-05:00) Cuba',
|
||||
'America/Bogota' => '(GMT-05:00) Bogota, Lima, Quito, Rio Branco',
|
||||
'America/Caracas' => '(GMT-04:30) Caracas',
|
||||
@@ -206,9 +236,10 @@ function get_timeformats()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Gets the payment options
|
||||
*/
|
||||
Gets the payment options
|
||||
*/
|
||||
function get_payment_options()
|
||||
{
|
||||
$config = get_instance()->config;
|
||||
@@ -216,6 +247,7 @@ function get_payment_options()
|
||||
|
||||
$payments = array();
|
||||
|
||||
|
||||
if($config->item('payment_options_order') == 'debitcreditcash')
|
||||
{
|
||||
$payments[$lang->line('sales_debit')] = $lang->line('sales_debit');
|
||||
@@ -250,6 +282,12 @@ function get_payment_options()
|
||||
$payments[$lang->line('sales_due')] = $lang->line('sales_due');
|
||||
$payments[$lang->line('sales_check')] = $lang->line('sales_check');
|
||||
|
||||
// If India (list of country codes include India) then include Unified Payment Interface
|
||||
if (stripos(get_instance()->config->item('country_codes'), 'IN') !== false)
|
||||
{
|
||||
$payments[$lang->line('sales_upi')] = $lang->line('sales_upi');
|
||||
}
|
||||
|
||||
return $payments;
|
||||
}
|
||||
|
||||
@@ -291,6 +329,20 @@ function tax_decimals()
|
||||
return $config->item('tax_decimals') ? $config->item('tax_decimals') : 0;
|
||||
}
|
||||
|
||||
function to_date($date = DEFAULT_DATE)
|
||||
{
|
||||
$config = get_instance()->config;
|
||||
|
||||
return date($config->item('dateformat'), $date);
|
||||
}
|
||||
|
||||
function to_datetime($datetime = DEFAULT_DATETIME)
|
||||
{
|
||||
$config = get_instance()->config;
|
||||
|
||||
return date($config->item('dateformat') . ' ' . $config->item('timeformat'), $datetime);
|
||||
}
|
||||
|
||||
function to_currency($number)
|
||||
{
|
||||
return to_decimals($number, 'currency_decimals', \NumberFormatter::CURRENCY);
|
||||
@@ -305,13 +357,13 @@ function to_currency_tax($number)
|
||||
{
|
||||
$config = get_instance()->config;
|
||||
|
||||
if($config->item('customer_sales_tax_support') == '1')
|
||||
if($config->item('tax_included') == '1')
|
||||
{
|
||||
return to_decimals($number, 'currency_decimals', \NumberFormatter::CURRENCY);
|
||||
return to_decimals($number, 'tax_decimals', \NumberFormatter::CURRENCY);
|
||||
}
|
||||
else
|
||||
{
|
||||
return to_decimals($number, 'tax_decimals', \NumberFormatter::CURRENCY);
|
||||
return to_decimals($number, 'currency_decimals', \NumberFormatter::CURRENCY);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -354,18 +406,45 @@ function to_decimals($number, $decimals, $type=\NumberFormatter::DECIMAL)
|
||||
return $fmt->format($number);
|
||||
}
|
||||
|
||||
function parse_decimals($number)
|
||||
function parse_quantity($number)
|
||||
{
|
||||
return parse_decimals($number, quantity_decimals());
|
||||
}
|
||||
|
||||
function parse_tax($number)
|
||||
{
|
||||
return parse_decimals($number, tax_decimals());
|
||||
}
|
||||
|
||||
function parse_decimals($number, $decimals = NULL)
|
||||
{
|
||||
// ignore empty strings and return
|
||||
|
||||
if(empty($number))
|
||||
{
|
||||
return $number;
|
||||
}
|
||||
|
||||
if ($number > MAX_PRECISION)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if ($number > 1.e14)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
$config = get_instance()->config;
|
||||
|
||||
if($decimals == NULL)
|
||||
{
|
||||
$decimals = $config->item('currency_decimals');
|
||||
}
|
||||
|
||||
$fmt = new \NumberFormatter($config->item('number_locale'), \NumberFormatter::DECIMAL);
|
||||
|
||||
$fmt->setAttribute(\NumberFormatter::FRACTION_DIGITS, $config->item('currency_decimals'));
|
||||
$fmt->setAttribute(\NumberFormatter::FRACTION_DIGITS, $decimals);
|
||||
|
||||
if(empty($config->item('thousands_separator')))
|
||||
{
|
||||
@@ -431,6 +510,50 @@ function dateformat_momentjs($php_format)
|
||||
return strtr($php_format, $SYMBOLS_MATCHING);
|
||||
}
|
||||
|
||||
function dateformat_mysql()
|
||||
{
|
||||
$config = get_instance()->config;
|
||||
$php_format = $config->item('dateformat');
|
||||
|
||||
$SYMBOLS_MATCHING = array(
|
||||
// Day
|
||||
'd' => '%d',
|
||||
'D' => '%a',
|
||||
'j' => '%e',
|
||||
'l' => '%W',
|
||||
'N' => '',
|
||||
'S' => '',
|
||||
'w' => '',
|
||||
'z' => '',
|
||||
// Week
|
||||
'W' => '',
|
||||
// Month
|
||||
'F' => '',
|
||||
'm' => '%m',
|
||||
'M' => '%b',
|
||||
'n' => '%c',
|
||||
't' => '',
|
||||
// Year
|
||||
'L' => '',
|
||||
'o' => '',
|
||||
'Y' => '%Y',
|
||||
'y' => '%y',
|
||||
// Time
|
||||
'a' => '',
|
||||
'A' => '%p',
|
||||
'B' => '',
|
||||
'g' => '%l',
|
||||
'G' => '%k',
|
||||
'h' => '%H',
|
||||
'H' => '%k',
|
||||
'i' => '%i',
|
||||
's' => '%S',
|
||||
'u' => '%f'
|
||||
);
|
||||
|
||||
return strtr($php_format, $SYMBOLS_MATCHING);
|
||||
}
|
||||
|
||||
function dateformat_bootstrap($php_format)
|
||||
{
|
||||
$SYMBOLS_MATCHING = array(
|
||||
@@ -472,4 +595,14 @@ function dateformat_bootstrap($php_format)
|
||||
return strtr($php_format, $SYMBOLS_MATCHING);
|
||||
}
|
||||
|
||||
function valid_date($date)
|
||||
{
|
||||
return preg_match('/^([0-9]{2,4})-([0-1][0-9])-([0-3][0-9])(?:( [0-2][0-9]):([0-5][0-9]):([0-5][0-9]))?$/', $date);
|
||||
}
|
||||
|
||||
function valid_decimal($decimal)
|
||||
{
|
||||
return preg_match('/^(\d*\.)?\d+$/', $decimal);
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
@@ -9,7 +9,7 @@ function execute_script($path)
|
||||
$CI =& get_instance();
|
||||
|
||||
$version = preg_replace("/(.*_)?(.*).sql/", "$2", $path);
|
||||
error_log("Migrating to $version");
|
||||
error_log("Migrating to $version (file: $path)");
|
||||
|
||||
$sql = file_get_contents($path);
|
||||
|
||||
|
||||
@@ -86,11 +86,12 @@ 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' => to_datetime(strtotime($sale->sale_time)),
|
||||
'customer_name' => $sale->customer_name,
|
||||
'amount_due' => to_currency($sale->amount_due),
|
||||
'amount_tendered' => to_currency($sale->amount_tendered),
|
||||
@@ -122,6 +123,7 @@ 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;
|
||||
@@ -148,6 +150,7 @@ Get the sales payments summary
|
||||
function get_sales_manage_payments_summary($payments, $sales)
|
||||
{
|
||||
$CI =& get_instance();
|
||||
|
||||
$table = '<div id="report_summary">';
|
||||
|
||||
foreach($payments as $key=>$payment)
|
||||
@@ -156,7 +159,7 @@ function get_sales_manage_payments_summary($payments, $sales)
|
||||
|
||||
// WARNING: the strong assumption here is that if a change is due it was a cash transaction always
|
||||
// therefore we remove from the total cash amount any change due
|
||||
if( $payment['payment_type'] == $CI->lang->line('sales_cash') )
|
||||
if($payment['payment_type'] == $CI->lang->line('sales_cash'))
|
||||
{
|
||||
foreach($sales->result_array() as $key=>$sale)
|
||||
{
|
||||
@@ -212,7 +215,8 @@ function get_person_data_row($person)
|
||||
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'))
|
||||
));
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -246,6 +250,7 @@ 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 (
|
||||
@@ -274,6 +279,7 @@ function get_suppliers_manage_table_headers()
|
||||
array('people.person_id' => $CI->lang->line('common_id')),
|
||||
array('company_name' => $CI->lang->line('suppliers_company_name')),
|
||||
array('agency_name' => $CI->lang->line('suppliers_agency_name')),
|
||||
array('category' => $CI->lang->line('suppliers_category')),
|
||||
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')),
|
||||
@@ -294,12 +300,14 @@ Get the html data row for the supplier
|
||||
function get_supplier_data_row($supplier)
|
||||
{
|
||||
$CI =& get_instance();
|
||||
|
||||
$controller_name = strtolower(get_class($CI));
|
||||
|
||||
return array (
|
||||
'people.person_id' => $supplier->person_id,
|
||||
'company_name' => $supplier->company_name,
|
||||
'agency_name' => $supplier->agency_name,
|
||||
'category' => $supplier->category,
|
||||
'last_name' => $supplier->last_name,
|
||||
'first_name' => $supplier->first_name,
|
||||
'email' => empty($supplier->email) ? '' : mailto($supplier->email, $supplier->email),
|
||||
@@ -308,7 +316,7 @@ function get_supplier_data_row($supplier)
|
||||
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')))
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -319,6 +327,8 @@ function get_items_manage_table_headers()
|
||||
{
|
||||
$CI =& get_instance();
|
||||
|
||||
$definition_names = $CI->Attribute->get_definitions_by_flags(Attribute::SHOW_IN_ITEMS);
|
||||
|
||||
$headers = array(
|
||||
array('items.item_id' => $CI->lang->line('common_id')),
|
||||
array('item_number' => $CI->lang->line('items_item_number')),
|
||||
@@ -327,13 +337,29 @@ function get_items_manage_table_headers()
|
||||
array('company_name' => $CI->lang->line('suppliers_company_name')),
|
||||
array('cost_price' => $CI->lang->line('items_cost_price')),
|
||||
array('unit_price' => $CI->lang->line('items_unit_price')),
|
||||
array('quantity' => $CI->lang->line('items_quantity')),
|
||||
array('tax_percents' => $CI->lang->line('items_tax_percents'), 'sortable' => FALSE),
|
||||
array('item_pic' => $CI->lang->line('items_image'), 'sortable' => FALSE),
|
||||
array('inventory' => ''),
|
||||
array('stock' => '')
|
||||
array('quantity' => $CI->lang->line('items_quantity'))
|
||||
);
|
||||
|
||||
if($CI->config->item('use_destination_based_tax') == '1')
|
||||
{
|
||||
$headers[] = array('tax_percents' => $CI->lang->line('items_tax_category'), 'sortable' => FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
$headers[] = array('tax_percents' => $CI->lang->line('items_tax_percents'), 'sortable' => FALSE);
|
||||
|
||||
}
|
||||
|
||||
$headers[] = array('item_pic' => $CI->lang->line('items_image'), 'sortable' => FALSE);
|
||||
|
||||
foreach($definition_names as $definition_id => $definition_name)
|
||||
{
|
||||
$headers[] = array($definition_id => $definition_name, 'sortable' => FALSE);
|
||||
}
|
||||
|
||||
$headers[] = array('inventory' => '');
|
||||
$headers[] = array('stock' => '');
|
||||
|
||||
return transform_headers($headers);
|
||||
}
|
||||
|
||||
@@ -343,14 +369,32 @@ 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);
|
||||
$tax_percents = '';
|
||||
foreach($item_tax_info as $tax_info)
|
||||
|
||||
if($CI->config->item('use_destination_based_tax') == '1')
|
||||
{
|
||||
$tax_percents .= to_tax_decimals($tax_info['percent']) . '%, ';
|
||||
if($item->tax_category_id == NULL)
|
||||
{
|
||||
$tax_percents = '-';
|
||||
}
|
||||
else
|
||||
{
|
||||
$tax_category_info = $CI->Tax_category->get_info($item->tax_category_id);
|
||||
$tax_percents = $tax_category_info->tax_category;
|
||||
}
|
||||
}
|
||||
// remove ', ' from last item
|
||||
$tax_percents = substr($tax_percents, 0, -2);
|
||||
else
|
||||
{
|
||||
$item_tax_info = $CI->Item_taxes->get_info($item->item_id);
|
||||
$tax_percents = '';
|
||||
foreach($item_tax_info as $tax_info)
|
||||
{
|
||||
$tax_percents .= to_tax_decimals($tax_info['percent']) . '%, ';
|
||||
}
|
||||
// remove ', ' from last item
|
||||
$tax_percents = substr($tax_percents, 0, -2);
|
||||
$tax_percents = !$tax_percents ? '-' : $tax_percents;
|
||||
}
|
||||
|
||||
$controller_name = strtolower(get_class($CI));
|
||||
|
||||
$image = NULL;
|
||||
@@ -374,7 +418,14 @@ function get_item_data_row($item)
|
||||
}
|
||||
}
|
||||
|
||||
return array (
|
||||
if($CI->config->item('multi_pack_enabled') == '1')
|
||||
{
|
||||
$item->name .= NAME_SEPARATOR . $item->pack_name;
|
||||
}
|
||||
|
||||
$definition_names = $CI->Attribute->get_definitions_by_flags(Attribute::SHOW_IN_ITEMS);
|
||||
|
||||
$columns = array (
|
||||
'items.item_id' => $item->item_id,
|
||||
'item_number' => $item->item_number,
|
||||
'name' => $item->name,
|
||||
@@ -384,7 +435,10 @@ function get_item_data_row($item)
|
||||
'unit_price' => to_currency($item->unit_price),
|
||||
'quantity' => to_quantity_decimals($item->quantity),
|
||||
'tax_percents' => !$tax_percents ? '-' : $tax_percents,
|
||||
'item_pic' => $image,
|
||||
'item_pic' => $image
|
||||
);
|
||||
|
||||
$icons = array(
|
||||
'inventory' => anchor($controller_name."/inventory/$item->item_id", '<span class="glyphicon glyphicon-pushpin"></span>',
|
||||
array('class' => 'modal-dlg', 'data-btn-submit' => $CI->lang->line('common_submit'), 'title' => $CI->lang->line($controller_name.'_count'))
|
||||
),
|
||||
@@ -393,7 +447,11 @@ function get_item_data_row($item)
|
||||
),
|
||||
'edit' => anchor($controller_name."/view/$item->item_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'))
|
||||
));
|
||||
)
|
||||
);
|
||||
|
||||
return $columns + expand_attribute_values($definition_names, (array) $item) + $icons;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -421,6 +479,7 @@ Get the html data row for the giftcard
|
||||
function get_giftcard_data_row($giftcard)
|
||||
{
|
||||
$CI =& get_instance();
|
||||
|
||||
$controller_name=strtolower(get_class($CI));
|
||||
|
||||
return array (
|
||||
@@ -431,54 +490,10 @@ function get_giftcard_data_row($giftcard)
|
||||
'value' => to_currency($giftcard->value),
|
||||
'edit' => anchor($controller_name."/view/$giftcard->giftcard_id", '<span class="glyphicon glyphicon-edit"></span>',
|
||||
array('class'=>'modal-dlg', 'data-btn-submit' => $CI->lang->line('common_submit'), 'title'=>$CI->lang->line($controller_name.'_update'))
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Get the header for the taxes tabular view
|
||||
*/
|
||||
function get_taxes_manage_table_headers()
|
||||
{
|
||||
$CI =& get_instance();
|
||||
|
||||
$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
|
||||
*/
|
||||
@@ -503,6 +518,7 @@ 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));
|
||||
|
||||
return array (
|
||||
@@ -513,9 +529,94 @@ function get_item_kit_data_row($item_kit)
|
||||
'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'))
|
||||
));
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
function parse_attribute_values($columns, $row) {
|
||||
$attribute_values = array();
|
||||
foreach($columns as $column) {
|
||||
if (array_key_exists($column, $row))
|
||||
{
|
||||
$attribute_value = explode('|', $row[$column]);
|
||||
$attribute_values = array_merge($attribute_values, $attribute_value);
|
||||
}
|
||||
}
|
||||
return $attribute_values;
|
||||
}
|
||||
|
||||
function expand_attribute_values($definition_names, $row)
|
||||
{
|
||||
$values = parse_attribute_values(array('attribute_values', 'attribute_dtvalues', 'attribute_dvalues'), $row);
|
||||
|
||||
$indexed_values = array();
|
||||
foreach($values as $attribute_value)
|
||||
{
|
||||
$exploded_value = explode('_', $attribute_value);
|
||||
if(sizeof($exploded_value) > 1)
|
||||
{
|
||||
$indexed_values[$exploded_value[0]] = $exploded_value[1];
|
||||
}
|
||||
}
|
||||
|
||||
$attribute_values = array();
|
||||
foreach($definition_names as $definition_id => $definition_name)
|
||||
{
|
||||
if(isset($indexed_values[$definition_id]))
|
||||
{
|
||||
$attribute_value = $indexed_values[$definition_id];
|
||||
$attribute_values["$definition_id"] = $attribute_value;
|
||||
}
|
||||
}
|
||||
|
||||
return $attribute_values;
|
||||
}
|
||||
|
||||
function get_attribute_definition_manage_table_headers()
|
||||
{
|
||||
$CI =& get_instance();
|
||||
|
||||
$headers = array(
|
||||
array('definition_id' => $CI->lang->line('attributes_definition_id')),
|
||||
array('definition_name' => $CI->lang->line('attributes_definition_name')),
|
||||
array('definition_type' => $CI->lang->line('attributes_definition_type')),
|
||||
array('definition_flags' => $CI->lang->line('attributes_definition_flags')),
|
||||
array('definition_group' => $CI->lang->line('attributes_definition_group')),
|
||||
);
|
||||
|
||||
return transform_headers($headers);
|
||||
}
|
||||
|
||||
function get_attribute_definition_data_row($attribute)
|
||||
{
|
||||
$CI =& get_instance();
|
||||
|
||||
$controller_name = strtolower(get_class($CI));
|
||||
|
||||
if(count($attribute->definition_flags) == 0)
|
||||
{
|
||||
$definition_flags = $CI->lang->line('common_none_selected_text');
|
||||
}
|
||||
else if($attribute->definition_type == GROUP)
|
||||
{
|
||||
$definition_flags = "-";
|
||||
}
|
||||
else
|
||||
{
|
||||
$definition_flags = implode(', ', $attribute->definition_flags);
|
||||
}
|
||||
|
||||
return array (
|
||||
'definition_id' => $attribute->definition_id,
|
||||
'definition_name' => $attribute->definition_name,
|
||||
'definition_type' => $attribute->definition_type,
|
||||
'definition_group' => $attribute->definition_group,
|
||||
'definition_flags' => $definition_flags,
|
||||
'edit' => anchor("$controller_name/view/$attribute->definition_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
|
||||
@@ -539,6 +640,7 @@ 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 (
|
||||
@@ -547,7 +649,8 @@ function get_expense_category_data_row($expense_category)
|
||||
'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'))
|
||||
));
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -557,6 +660,7 @@ 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')),
|
||||
@@ -567,22 +671,24 @@ function get_expenses_manage_table_headers()
|
||||
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'))
|
||||
array('created_by' => $CI->lang->line('expenses_employee'))
|
||||
);
|
||||
|
||||
return transform_headers($headers);
|
||||
}
|
||||
|
||||
/*
|
||||
Gets the html data row for the expenses.
|
||||
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)),
|
||||
'date' => to_datetime(strtotime($expense->date)),
|
||||
'supplier_name' => $expense->supplier_name,
|
||||
'supplier_tax_code' => $expense->supplier_tax_code,
|
||||
'amount' => to_currency($expense->amount),
|
||||
@@ -590,10 +696,11 @@ function get_expenses_data_row($expense)
|
||||
'payment_type' => $expense->payment_type,
|
||||
'category_name' => $expense->category_name,
|
||||
'description' => $expense->description,
|
||||
'createdBy' => $expense->first_name.' '. $expense->last_name,
|
||||
'created_by' => $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'))
|
||||
));
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -602,6 +709,7 @@ 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;
|
||||
@@ -626,6 +734,7 @@ 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)
|
||||
@@ -633,9 +742,65 @@ function get_expenses_manage_payments_summary($payments, $expenses)
|
||||
$amount = $payment['amount'];
|
||||
$table .= '<div class="summary_row">' . $payment['payment_type'] . ': ' . to_currency($amount) . '</div>';
|
||||
}
|
||||
|
||||
$table .= '</div>';
|
||||
|
||||
return $table;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Get the header for the cashup tabular view
|
||||
*/
|
||||
function get_cashups_manage_table_headers()
|
||||
{
|
||||
$CI =& get_instance();
|
||||
|
||||
$headers = array(
|
||||
array('cashup_id' => $CI->lang->line('cashups_id')),
|
||||
array('open_date' => $CI->lang->line('cashups_opened_date')),
|
||||
array('open_employee_id' => $CI->lang->line('cashups_open_employee')),
|
||||
array('open_amount_cash' => $CI->lang->line('cashups_open_amount_cash')),
|
||||
array('transfer_amount_cash' => $CI->lang->line('cashups_transfer_amount_cash')),
|
||||
array('close_date' => $CI->lang->line('cashups_closed_date')),
|
||||
array('close_employee_id' => $CI->lang->line('cashups_close_employee')),
|
||||
array('closed_amount_cash' => $CI->lang->line('cashups_closed_amount_cash')),
|
||||
array('note' => $CI->lang->line('cashups_note')),
|
||||
array('closed_amount_due' => $CI->lang->line('cashups_closed_amount_due')),
|
||||
array('closed_amount_card' => $CI->lang->line('cashups_closed_amount_card')),
|
||||
array('closed_amount_check' => $CI->lang->line('cashups_closed_amount_check')),
|
||||
array('closed_amount_total' => $CI->lang->line('cashups_closed_amount_total'))
|
||||
);
|
||||
|
||||
return transform_headers($headers);
|
||||
}
|
||||
|
||||
/*
|
||||
Gets the html data row for the cashups
|
||||
*/
|
||||
function get_cash_up_data_row($cash_up)
|
||||
{
|
||||
$CI =& get_instance();
|
||||
|
||||
$controller_name = strtolower(get_class($CI));
|
||||
|
||||
return array (
|
||||
'cashup_id' => $cash_up->cashup_id,
|
||||
'open_date' => to_datetime(strtotime($cash_up->open_date)),
|
||||
'open_employee_id' => $cash_up->open_first_name . ' ' . $cash_up->open_last_name,
|
||||
'open_amount_cash' => to_currency($cash_up->open_amount_cash),
|
||||
'transfer_amount_cash' => to_currency($cash_up->transfer_amount_cash),
|
||||
'close_date' => to_datetime(strtotime($cash_up->close_date)),
|
||||
'close_employee_id' => $cash_up->close_first_name . ' ' . $cash_up->close_last_name,
|
||||
'closed_amount_cash' => to_currency($cash_up->closed_amount_cash),
|
||||
'note' => $cash_up->note ? '<span class="glyphicon glyphicon-ok"></span>' : '<span class="glyphicon glyphicon-remove"></span>',
|
||||
'closed_amount_due' => to_currency($cash_up->closed_amount_due),
|
||||
'closed_amount_card' => to_currency($cash_up->closed_amount_card),
|
||||
'closed_amount_check' => to_currency($cash_up->closed_amount_check),
|
||||
'closed_amount_total' => to_currency($cash_up->closed_amount_total),
|
||||
'edit' => anchor($controller_name."/view/$cash_up->cashup_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'))
|
||||
)
|
||||
);
|
||||
}
|
||||
?>
|
||||
|
||||
158
application/helpers/tax_helper.php
Normal file
158
application/helpers/tax_helper.php
Normal file
@@ -0,0 +1,158 @@
|
||||
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* Tax Configuration tabular helpers
|
||||
*/
|
||||
|
||||
/*
|
||||
Get the header for the taxes tabular view
|
||||
*/
|
||||
function get_tax_code_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('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_code_data_row($tax_code_row)
|
||||
{
|
||||
$CI =& get_instance();
|
||||
|
||||
$controller_name = 'tax_codes';
|
||||
|
||||
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,
|
||||
'city' => $tax_code_row->city,
|
||||
'state' => $tax_code_row->state,
|
||||
'edit' => anchor($controller_name."/view_tax_codes/$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_tax_codes'))
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/*
|
||||
Get the header for the taxes tabular view
|
||||
*/
|
||||
function get_tax_categories_table_headers()
|
||||
{
|
||||
$CI =& get_instance();
|
||||
|
||||
$headers = array(
|
||||
array('tax_category' => $CI->lang->line('taxes_tax_category_name')),
|
||||
array('tax_category_code' => $CI->lang->line('taxes_tax_category_code')),
|
||||
array('tax_group_sequence' => $CI->lang->line('taxes_tax_group_sequence')),
|
||||
);
|
||||
|
||||
return transform_headers($headers);
|
||||
}
|
||||
|
||||
/*
|
||||
Get the html data row for the tax
|
||||
*/
|
||||
function get_tax_categories_data_row($tax_categories_row)
|
||||
{
|
||||
$CI =& get_instance();
|
||||
|
||||
$controller_name = 'tax_categories';
|
||||
|
||||
return array (
|
||||
'tax_category_id' => $tax_categories_row->tax_category_id,
|
||||
'tax_category' => $tax_categories_row->tax_category,
|
||||
'tax_category_code' => $tax_categories_row->tax_category_code,
|
||||
'tax_group_sequence' => $tax_categories_row->tax_group_sequence,
|
||||
'edit' => anchor($controller_name."/view/$tax_categories_row->tax_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 taxes tabular view
|
||||
*/
|
||||
function get_tax_jurisdictions_table_headers()
|
||||
{
|
||||
$CI =& get_instance();
|
||||
|
||||
$headers = array(
|
||||
array('jurisdiction_id' => $CI->lang->line('taxes_jurisdiction_id')),
|
||||
array('jurisdiction_name' => $CI->lang->line('taxes_jurisdiction_name')),
|
||||
array('reporting_authority' => $CI->lang->line('taxes_reporting_authority'))
|
||||
);
|
||||
|
||||
return transform_headers($headers);
|
||||
}
|
||||
|
||||
/*
|
||||
Get the html data row for the tax
|
||||
*/
|
||||
function get_tax_jurisdictions_data_row($tax_jurisdiction_row)
|
||||
{
|
||||
$CI =& get_instance();
|
||||
$controller_name='tax_jurisdictions';
|
||||
|
||||
return array (
|
||||
'jurisdiction_id' => $tax_jurisdiction_row->jurisdiction_id,
|
||||
'jurisdiction_name' => $tax_jurisdiction_row->jurisdiction_name,
|
||||
'reporting_authority' => $tax_jurisdiction_row->reporting_authority,
|
||||
'edit' => anchor($controller_name."/view/$tax_jurisdiction_row->jurisdiction_id", '<span class="glyphicon glyphicon-edit"></span>',
|
||||
array('class'=>'modal-dlg', 'data-btn-submit' => $CI->lang->line('common_submit'), 'title'=>$CI->lang->line($controller_name.'_update'))
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/*
|
||||
Get the header for the taxes tabular view
|
||||
*/
|
||||
function get_tax_rates_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('jurisdiction_name' => $CI->lang->line('taxes_jurisdiction_name')),
|
||||
array('tax_category' => $CI->lang->line('taxes_tax_category')),
|
||||
array('tax_rate' => $CI->lang->line('taxes_tax_rate')),
|
||||
array('rounding_code_name' => $CI->lang->line('taxes_rounding_code'))
|
||||
);
|
||||
|
||||
return transform_headers($headers);
|
||||
}
|
||||
|
||||
/*
|
||||
Get the html data row for the tax
|
||||
*/
|
||||
function get_tax_rates_data_row($tax_rates_row)
|
||||
{
|
||||
$CI =& get_instance();
|
||||
|
||||
$controller_name = strtolower(get_class($CI));
|
||||
|
||||
return array (
|
||||
'tax_rate_id' => $tax_rates_row->tax_rate_id,
|
||||
'tax_code' => $tax_rates_row->tax_code,
|
||||
'tax_code_name' => $tax_rates_row->tax_code_name,
|
||||
'tax_category' => $tax_rates_row->tax_category,
|
||||
'tax_rate' => $tax_rates_row->tax_rate,
|
||||
'jurisdiction_name' => $tax_rates_row->jurisdiction_name,
|
||||
'tax_rounding_code' =>$tax_rates_row->tax_rounding_code,
|
||||
'rounding_code_name' => Rounding_mode::get_rounding_code_name($tax_rates_row->tax_rounding_code),
|
||||
'edit' => anchor($controller_name."/view/$tax_rates_row->tax_rate_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'))
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -7,25 +7,28 @@ function load_config()
|
||||
{
|
||||
$CI =& get_instance();
|
||||
|
||||
$migration = $CI->load->library('migration');
|
||||
if (!$CI->migration->is_latest())
|
||||
{
|
||||
$CI->session->sess_destroy();
|
||||
}
|
||||
|
||||
foreach($CI->Appconfig->get_all()->result() as $app_config)
|
||||
{
|
||||
$CI->config->set_item($CI->security->xss_clean($app_config->key), $CI->security->xss_clean($app_config->value));
|
||||
}
|
||||
|
||||
//Loads all the language files from the language directory
|
||||
if(!empty(current_language()))
|
||||
{
|
||||
// fallback to English if language folder does not exist
|
||||
if(!file_exists('../application/language/' . current_language_code()))
|
||||
{
|
||||
$CI->config->set_item('language', 'english');
|
||||
$CI->config->set_item('language_code', 'en-US');
|
||||
}
|
||||
|
||||
_load_language_files($CI, '../vendor/codeigniter/framework/system/language', current_language());
|
||||
_load_language_files($CI, '../application/language', current_language_code());
|
||||
// fallback to English if language settings are not correct
|
||||
$file_exists = !file_exists('../application/language/' . current_language_code());
|
||||
if(current_language_code() == null || current_language() == null || $file_exists)
|
||||
{
|
||||
$CI->config->set_item('language', 'english');
|
||||
$CI->config->set_item('language_code', 'en-US');
|
||||
}
|
||||
|
||||
|
||||
_load_language_files($CI, '../vendor/codeigniter/framework/system/language', current_language());
|
||||
_load_language_files($CI, '../application/language', current_language_code());
|
||||
|
||||
//Set timezone from config database
|
||||
if($CI->config->item('timezone'))
|
||||
{
|
||||
|
||||
@@ -2,9 +2,7 @@ ISO Language Code Table
|
||||
-----------------------
|
||||
|
||||
Code Name
|
||||
af Afrikaans
|
||||
af-ZA Afrikaans (South Africa)
|
||||
ar Arabic
|
||||
ar-AE Arabic (U.A.E.)
|
||||
ar-BH Arabic (Bahrain)
|
||||
ar-DZ Arabic (Algeria)
|
||||
@@ -21,33 +19,22 @@ ar-SA Arabic (Saudi Arabia)
|
||||
ar-SY Arabic (Syria)
|
||||
ar-TN Arabic (Tunisia)
|
||||
ar-YE Arabic (Yemen)
|
||||
az Azeri (Latin)
|
||||
az-AZ Azeri (Latin) (Azerbaijan)
|
||||
az-AZ Azeri (Cyrillic) (Azerbaijan)
|
||||
be Belarusian
|
||||
be-BY Belarusian (Belarus)
|
||||
bg Bulgarian
|
||||
bg-BG Bulgarian (Bulgaria)
|
||||
bs-BA Bosnian (Bosnia and Herzegovina)
|
||||
ca Catalan
|
||||
ca-ES Catalan (Spain)
|
||||
cs Czech
|
||||
cs-CZ Czech (Czech Republic)
|
||||
cy Welsh
|
||||
cy-GB Welsh (United Kingdom)
|
||||
da Danish
|
||||
da-DK Danish (Denmark)
|
||||
de German
|
||||
de-AT German (Austria)
|
||||
de-CH German (Switzerland)
|
||||
de-DE German (Germany)
|
||||
de-LI German (Liechtenstein)
|
||||
de-LU German (Luxembourg)
|
||||
dv Divehi
|
||||
dv-MV Divehi (Maldives)
|
||||
el Greek
|
||||
el-GR Greek (Greece)
|
||||
en English
|
||||
en-AU English (Australia)
|
||||
en-BZ English (Belize)
|
||||
en-CA English (Canada)
|
||||
@@ -61,8 +48,6 @@ en-TT English (Trinidad and Tobago)
|
||||
en-US English (United States)
|
||||
en-ZA English (South Africa)
|
||||
en-ZW English (Zimbabwe)
|
||||
eo Esperanto
|
||||
es Spanish
|
||||
es-AR Spanish (Argentina)
|
||||
es-BO Spanish (Bolivia)
|
||||
es-CL Spanish (Chile)
|
||||
@@ -83,104 +68,61 @@ es-PY Spanish (Paraguay)
|
||||
es-SV Spanish (El Salvador)
|
||||
es-UY Spanish (Uruguay)
|
||||
es-VE Spanish (Venezuela)
|
||||
et Estonian
|
||||
et-EE Estonian (Estonia)
|
||||
eu Basque
|
||||
eu-ES Basque (Spain)
|
||||
fa Farsi
|
||||
fa-IR Farsi (Iran)
|
||||
fi Finnish
|
||||
fi-FI Finnish (Finland)
|
||||
fo Faroese
|
||||
fo-FO Faroese (Faroe Islands)
|
||||
fr French
|
||||
fr-BE French (Belgium)
|
||||
fr-CA French (Canada)
|
||||
fr-CH French (Switzerland)
|
||||
fr-FR French (France)
|
||||
fr-LU French (Luxembourg)
|
||||
fr-MC French (Principality of Monaco)
|
||||
gl Galician
|
||||
gl-ES Galician (Spain)
|
||||
gu Gujarati
|
||||
gu-IN Gujarati (India)
|
||||
he Hebrew
|
||||
he-IL Hebrew (Israel)
|
||||
hi Hindi
|
||||
hi-IN Hindi (India)
|
||||
hr Croatian
|
||||
hr-BA Croatian (Bosnia and Herzegovina)
|
||||
hr-HR Croatian (Croatia)
|
||||
hu Hungarian
|
||||
hu-HU Hungarian (Hungary)
|
||||
hy Armenian
|
||||
hy-AM Armenian (Armenia)
|
||||
id Indonesian
|
||||
id-ID Indonesian (Indonesia)
|
||||
is Icelandic
|
||||
is-IS Icelandic (Iceland)
|
||||
it Italian
|
||||
it-CH Italian (Switzerland)
|
||||
it-IT Italian (Italy)
|
||||
ja Japanese
|
||||
ja-JP Japanese (Japan)
|
||||
ka Georgian
|
||||
ka-GE Georgian (Georgia)
|
||||
kk Kazakh
|
||||
kk-KZ Kazakh (Kazakhstan)
|
||||
kn Kannada
|
||||
kn-IN Kannada (India)
|
||||
ko Korean
|
||||
ko-KR Korean (Korea)
|
||||
kok Konkani
|
||||
kok-IN Konkani (India)
|
||||
ky Kyrgyz
|
||||
ky-KG Kyrgyz (Kyrgyzstan)
|
||||
lt Lithuanian
|
||||
lt-LT Lithuanian (Lithuania)
|
||||
lv Latvian
|
||||
lv-LV Latvian (Latvia)
|
||||
mi Maori
|
||||
mi-NZ Maori (New Zealand)
|
||||
mk FYRO Macedonian
|
||||
mk-MK FYRO Macedonian (Former Yugoslav Republic of Macedonia)
|
||||
mn Mongolian
|
||||
mn-MN Mongolian (Mongolia)
|
||||
mr Marathi
|
||||
mr-IN Marathi (India)
|
||||
ms Malay
|
||||
ms-BN Malay (Brunei Darussalam)
|
||||
ms-MY Malay (Malaysia)
|
||||
mt Maltese
|
||||
mt-MT Maltese (Malta)
|
||||
nb Norwegian (Bokm?l)
|
||||
nb-NO Norwegian (Bokm?l) (Norway)
|
||||
nl Dutch
|
||||
nl-BE Dutch (Belgium)
|
||||
nl-NL Dutch (Netherlands)
|
||||
nn-NO Norwegian (Nynorsk) (Norway)
|
||||
ns Northern Sotho
|
||||
ns-ZA Northern Sotho (South Africa)
|
||||
pa Punjabi
|
||||
pa-IN Punjabi (India)
|
||||
pl Polish
|
||||
pl-PL Polish (Poland)
|
||||
ps Pashto
|
||||
ps-AR Pashto (Afghanistan)
|
||||
pt Portuguese
|
||||
pt-BR Portuguese (Brazil)
|
||||
pt-PT Portuguese (Portugal)
|
||||
qu Quechua
|
||||
qu-BO Quechua (Bolivia)
|
||||
qu-EC Quechua (Ecuador)
|
||||
qu-PE Quechua (Peru)
|
||||
ro Romanian
|
||||
ro-RO Romanian (Romania)
|
||||
ru Russian
|
||||
ru-RU Russian (Russia)
|
||||
sa Sanskrit
|
||||
sa-IN Sanskrit (India)
|
||||
se Sami (Northern)
|
||||
se-FI Sami (Northern) (Finland)
|
||||
se-FI Sami (Skolt) (Finland)
|
||||
se-FI Sami (Inari) (Finland)
|
||||
@@ -190,55 +132,35 @@ se-NO Sami (Southern) (Norway)
|
||||
se-SE Sami (Northern) (Sweden)
|
||||
se-SE Sami (Lule) (Sweden)
|
||||
se-SE Sami (Southern) (Sweden)
|
||||
sk Slovak
|
||||
sk-SK Slovak (Slovakia)
|
||||
sl Slovenian
|
||||
sl-SI Slovenian (Slovenia)
|
||||
sq Albanian
|
||||
sq-AL Albanian (Albania)
|
||||
sr-BA Serbian (Latin) (Bosnia and Herzegovina)
|
||||
sr-BA Serbian (Cyrillic) (Bosnia and Herzegovina)
|
||||
sr-SP Serbian (Latin) (Serbia and Montenegro)
|
||||
sr-SP Serbian (Cyrillic) (Serbia and Montenegro)
|
||||
sv Swedish
|
||||
sv-FI Swedish (Finland)
|
||||
sv-SE Swedish (Sweden)
|
||||
sw Swahili
|
||||
sw-KE Swahili (Kenya)
|
||||
syr Syriac
|
||||
syr-SY Syriac (Syria)
|
||||
ta Tamil
|
||||
ta-IN Tamil (India)
|
||||
te Telugu
|
||||
te-IN Telugu (India)
|
||||
th Thai
|
||||
th-TH Thai (Thailand)
|
||||
tl Tagalog
|
||||
tl-PH Tagalog (Philippines)
|
||||
tn Tswana
|
||||
tn-ZA Tswana (South Africa)
|
||||
tr Turkish
|
||||
tr-TR Turkish (Turkey)
|
||||
tt Tatar
|
||||
tt-RU Tatar (Russia)
|
||||
ts Tsonga
|
||||
uk Ukrainian
|
||||
uk-UA Ukrainian (Ukraine)
|
||||
ur Urdu
|
||||
ur-PK Urdu (Islamic Republic of Pakistan)
|
||||
uz Uzbek (Latin)
|
||||
uz-UZ Uzbek (Latin) (Uzbekistan)
|
||||
uz-UZ Uzbek (Cyrillic) (Uzbekistan)
|
||||
vi Vietnamese
|
||||
vi-VN Vietnamese (Viet Nam)
|
||||
xh Xhosa
|
||||
xh-ZA Xhosa (South Africa)
|
||||
zh Chinese
|
||||
zh-CN Chinese (S)
|
||||
zh-Hans Chinese in the simplified scrip
|
||||
zh-Hant Chinese in the traditional script
|
||||
zh-HK Chinese (Hong Kong)
|
||||
zh-MO Chinese (Macau)
|
||||
zh-SG Chinese (Singapore)
|
||||
zh-TW Chinese (T)
|
||||
zu Zulu
|
||||
zu-ZA Zulu (South Africa)
|
||||
|
||||
|
||||
31
application/language/ar-EG/attributes_lang.php
Normal file
31
application/language/ar-EG/attributes_lang.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
$lang["attributes_attribute_value_invalid_chars"] = "الميزات لا يمكن أن تحتوي على ':' أو'|'";
|
||||
$lang["attributes_confirm_delete"] = "هل أنت متأكد من أنك تريد حذف الميزات المحددة ؟";
|
||||
$lang["attributes_confirm_restore"] = "هل أنت متأكد من أنك تريد استعادة السمة (السمات) المحددة؟";
|
||||
$lang["attributes_definition_cannot_be_deleted"] = "لا يمكن حذف السمات المحددة";
|
||||
$lang["attributes_definition_error_adding_updating"] = "لا يمكن إضافة السمة ٪1 أو تحديثها. يرجى التحقق من سجل الخطأ.";
|
||||
$lang["attributes_definition_flags"] = "رؤية الميزات";
|
||||
$lang["attributes_definition_group"] = "المجموعة";
|
||||
$lang["attributes_definition_id"] = "كود";
|
||||
$lang["attributes_definition_name"] = "إضافة ميزة";
|
||||
$lang["attributes_definition_name_required"] = "اسم الميزة هي خانة اجبارية";
|
||||
$lang["attributes_definition_one_or_multiple"] = "ميزة/ميزات";
|
||||
$lang["attributes_definition_successful_adding"] = "لقد تم إضافة صنف بنجاح";
|
||||
$lang["attributes_definition_successful_deleted"] = "لقد تم حذف ميزة بنجاح";
|
||||
$lang["attributes_definition_successful_updating"] = "تم تعديل الميزة بنجاح";
|
||||
$lang["attributes_definition_type"] = "نوع الميزة";
|
||||
$lang["attributes_definition_type_required"] = "نوع الميزة هي خانة إجبارية";
|
||||
$lang["attributes_definition_unit"] = "وحدة قياس";
|
||||
$lang["attributes_definition_values"] = "قيمة الميزة";
|
||||
$lang["attributes_new"] = "اضافة ميزة جديده";
|
||||
$lang["attributes_no_attributes_to_display"] = "لا يوجد اصناف للعرض";
|
||||
$lang["attributes_receipt_visibility"] = "وصل";
|
||||
$lang["attributes_show_in_items"] = "اظهار في الصنف";
|
||||
$lang["attributes_show_in_items_visibility"] = "الصنف";
|
||||
$lang["attributes_show_in_receipt"] = "اظهار على الوصل";
|
||||
$lang["attributes_show_in_receivings"] = "اظهار في استلام البضائع";
|
||||
$lang["attributes_show_in_receivings_visibility"] = "استلام البضائع";
|
||||
$lang["attributes_show_in_sales"] = "اظهار خلال البيع";
|
||||
$lang["attributes_show_in_sales_visibility"] = "البيع";
|
||||
$lang["attributes_update"] = "تحديث الميزات";
|
||||
@@ -3,7 +3,7 @@
|
||||
$lang["tables_all"] = "الجميع";
|
||||
$lang["tables_columns"] = "أعمدة";
|
||||
$lang["tables_hide_show_pagination"] = "عرض/إخفاء أرقام الصفحات";
|
||||
$lang["tables_loading"] = "جارى التحميل، برجاء الإنتظار";
|
||||
$lang["tables_loading"] = "جارى التحميل، برجاء الإنتظار ...";
|
||||
$lang["tables_page_from_to"] = "عرض {0} إلى {1} من {2} صفوف";
|
||||
$lang["tables_refresh"] = "إعادة تحميل";
|
||||
$lang["tables_rows_per_page"] = "{0} صف بالصفحة";
|
||||
|
||||
38
application/language/ar-EG/cashups_lang.php
Normal file
38
application/language/ar-EG/cashups_lang.php
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
$lang["cashups_amount"] = "قيمة المبلغ";
|
||||
$lang["cashups_amount_number"] = "قيمة المبلغ يجب ان تتكون من ارقام";
|
||||
$lang["cashups_amount_required"] = "قيمة المبلغ هي خانة إجبارية.";
|
||||
$lang["cashups_cannot_be_deleted"] = "لا يمكن حذف الصندوق النقدي";
|
||||
$lang["cashups_close_date"] = "تاريخ تسكير الصندوق";
|
||||
$lang["cashups_close_employee"] = "تم التسكير من قبل";
|
||||
$lang["cashups_closed_amount_card"] = "بطاقات ائتمان";
|
||||
$lang["cashups_closed_amount_cash"] = "الصندوق النقدي";
|
||||
$lang["cashups_closed_amount_check"] = "شيكات";
|
||||
$lang["cashups_closed_amount_due"] = "الديون";
|
||||
$lang["cashups_closed_amount_total"] = "المجموع";
|
||||
$lang["cashups_closed_date"] = "تاريخ تسكير الصندوق";
|
||||
$lang["cashups_confirm_delete"] = "هل انت متأكد من حذف الصندوق النقدي؟";
|
||||
$lang["cashups_confirm_restore"] = "هل انت متأكد من استعادة الصندوق النقدي؟";
|
||||
$lang["cashups_date_number"] = "التاريخ يجب ان يكون مكون من ارقام";
|
||||
$lang["cashups_date_required"] = "التاريخ هي خانة اجبارية";
|
||||
$lang["cashups_description"] = "الوصف";
|
||||
$lang["cashups_error_adding_updating"] = "خطأ في تعديل او اضافة صندوق نقدي";
|
||||
$lang["cashups_id"] = "كود";
|
||||
$lang["cashups_info"] = "معلومات عن الصندوق النقدي";
|
||||
$lang["cashups_is_deleted"] = "محذوف";
|
||||
$lang["cashups_new"] = "صندوق نقدي جديد";
|
||||
$lang["cashups_no_cashups_to_display"] = "لا يوجد صناديق نقدية للاظهار";
|
||||
$lang["cashups_none_selected"] = "لم يتم اختيار اي صندوق نقدي";
|
||||
$lang["cashups_note"] = "ملاحظات";
|
||||
$lang["cashups_one_or_multiple"] = "صندوق او صناديق نقدية";
|
||||
$lang["cashups_open_amount_cash"] = "بداية صندوق نقدي";
|
||||
$lang["cashups_open_date"] = "تاريخ بداية الصندوق النقدي";
|
||||
$lang["cashups_open_employee"] = "تمت بداية الصندوق النقدي من قبل";
|
||||
$lang["cashups_opened_date"] = "تاريخ بداية الصندوق النقدي";
|
||||
$lang["cashups_successful_adding"] = "تمت إضافة الصندوق النقدي بنجاح";
|
||||
$lang["cashups_successful_deleted"] = "تم حذف الصندوق النقدي بنجاح";
|
||||
$lang["cashups_successful_updating"] = "تم تعديل الصندوق النقدي بنجاح";
|
||||
$lang["cashups_total"] = "المجموع";
|
||||
$lang["cashups_transfer_amount_cash"] = "حركة الصندوق";
|
||||
$lang["cashups_update"] = "تعديل/تحديث الصندوق النقدي";
|
||||
@@ -7,6 +7,8 @@ $lang["common_close"] = "إغلاق";
|
||||
$lang["common_comments"] = "تعليقات";
|
||||
$lang["common_common"] = "عام";
|
||||
$lang["common_confirm_search"] = "لقد قمت اختيار أكتر من سجل، سوف تفقد هذه الاختيارات عند إرسال البحث، موافق؟";
|
||||
$lang["common_copyrights"] = "© 2010 - %1";
|
||||
$lang["common_correct_errors"] = "يرجى تصحيح الأخطاء المحددة قبل الحفظ";
|
||||
$lang["common_country"] = "البلد";
|
||||
$lang["common_date"] = "التاريخ";
|
||||
$lang["common_delete"] = "حذف";
|
||||
@@ -15,9 +17,9 @@ $lang["common_download_import_template"] = "تنزيل قالب الاستيرا
|
||||
$lang["common_edit"] = "تحرير";
|
||||
$lang["common_email"] = "بريد إلكتروني";
|
||||
$lang["common_email_invalid_format"] = "شكل البريد الإلكتروني غير صحيح.";
|
||||
$lang["common_export_excel"] = "تصدير إلى اكسل";
|
||||
$lang["common_export_excel_no"] = "لا";
|
||||
$lang["common_export_excel_yes"] = "نعم";
|
||||
$lang["common_export_csv"] = "تصدير إلى اكسل";
|
||||
$lang["common_export_csv_no"] = "لا";
|
||||
$lang["common_export_csv_yes"] = "نعم";
|
||||
$lang["common_fields_required_message"] = "الحقول التي بالأحمر مطلوبة";
|
||||
$lang["common_first_name"] = "الاسم الأول";
|
||||
$lang["common_first_name_required"] = "الاسم الأول مطلوب.";
|
||||
@@ -28,7 +30,7 @@ $lang["common_gender_male"] = "ذكر";
|
||||
$lang["common_id"] = "كود";
|
||||
$lang["common_import"] = "استيراد";
|
||||
$lang["common_import_change_file"] = "تغيير";
|
||||
$lang["common_import_excel"] = "استيراد من اكسل";
|
||||
$lang["common_import_csv"] = "استيراد من اكسل";
|
||||
$lang["common_import_full_path"] = "المسار الكامل لملف اكسل مطلوب";
|
||||
$lang["common_import_remove_file"] = "إزالة";
|
||||
$lang["common_import_select_file"] = "اختار ملف";
|
||||
@@ -39,9 +41,10 @@ $lang["common_last_page"] = "الأخيرة";
|
||||
$lang["common_learn_about_project"] = "للتعرف على أخر المعلومات حول المشروع.";
|
||||
$lang["common_list_of"] = "قائمة بـ";
|
||||
$lang["common_logout"] = "خروج";
|
||||
$lang["common_migration_needed"] = "سيبدأ ترحيل قاعدة البيانات إلى ٪1 بعد تسجيل الدخول.";
|
||||
$lang["common_new"] = "جديد";
|
||||
$lang["common_no_persons_to_display"] = "لا يوجد اناس لعرضهم.";
|
||||
$lang["common_none_selected_text"] = "لم يتم اختيار شيء.";
|
||||
$lang["common_none_selected_text"] = "[إختيار]";
|
||||
$lang["common_or"] = "أو";
|
||||
$lang["common_phone_number"] = "رقم التليفون";
|
||||
$lang["common_phone_number_required"] = "رقم التليفون مطلوب";
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
<?php
|
||||
<?php
|
||||
|
||||
$lang["config_address"] = "عنوان الشركة";
|
||||
$lang["config_address_required"] = "عنوان الشركة مطلوب.";
|
||||
$lang["config_all_set"] = "All file permissions are set correctly!";
|
||||
$lang["config_allow_duplicate_barcodes"] = "السماح بتشابة الباركود";
|
||||
$lang["config_apostrophe"] = "الفاصلة";
|
||||
$lang["config_backup_button"] = "نسخ إحتياطى";
|
||||
@@ -32,6 +34,7 @@ $lang["config_bottom"] = "الأسفل";
|
||||
$lang["config_cash_decimals"] = "فواصل النقدية";
|
||||
$lang["config_cash_decimals_tooltip"] = "إذا كانت الكسور العشرية النقدية وعشرية العملات هي نفسها ثم لن يتم تقريب النقدية.";
|
||||
$lang["config_cash_rounding"] = "التقريب النقدي";
|
||||
$lang["config_category_dropdown"] = "";
|
||||
$lang["config_center"] = "الوسط";
|
||||
$lang["config_comma"] = "فاصلة";
|
||||
$lang["config_company"] = "اسم الشركة";
|
||||
@@ -43,18 +46,9 @@ $lang["config_company_select_image"] = "اختار صورة";
|
||||
$lang["config_company_website_url"] = "الموقع الإلكترونى للشركة غير صحيح.";
|
||||
$lang["config_country_codes"] = "أكواد الدولة";
|
||||
$lang["config_country_codes_tooltip"] = "قائمة مفصولة بفاصلة لاسماء الدول للبحث.";
|
||||
$lang["config_currency_code"] = "رمز العملة";
|
||||
$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";
|
||||
$lang["config_custom5"] = "حقل مخصص 5";
|
||||
$lang["config_custom6"] = "حقل مخصص 6";
|
||||
$lang["config_custom7"] = "حقل مخصص 7";
|
||||
$lang["config_custom8"] = "حقل مخصص 8";
|
||||
$lang["config_custom9"] = "حقل مخصص 9";
|
||||
$lang["config_customer_reward"] = "المكافآت";
|
||||
$lang["config_customer_reward_duplicate"] = "المكافئة يجب ان تكون فريدة.";
|
||||
$lang["config_customer_reward_enable"] = "تمكين مكافآت العميل";
|
||||
@@ -76,10 +70,17 @@ $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_item_columns"] = "الخانات المراد إظهارها";
|
||||
$lang["config_default_origin_tax_code"] = "كود الضريبة الاساسي الافتراضي";
|
||||
$lang["config_default_sales_discount"] = "نسبة الخصم الافتراضية %";
|
||||
$lang["config_default_receivings_discount"] = "خصم الإيصالات الافتراضي";
|
||||
$lang["config_default_receivings_discount_number"] = "خصم الإيصالات الافتراضي يجب ان يكون رقم.";
|
||||
$lang["config_default_receivings_discount_required"] = "خصم الإيصالات الافتراضي هي خانة اجبارية.";
|
||||
$lang["config_default_sales_discount"] = "نسبة الخصم الافتراضية";
|
||||
$lang["config_default_sales_discount_number"] = "نسبة الخصم الافتراضية لابد ان تكون رقم.";
|
||||
$lang["config_default_sales_discount_required"] = "نسبة الخصم الافتراضية مطلوبة.";
|
||||
$lang["config_default_tax_category"] = "فئة الضرائب الافتراضية";
|
||||
$lang["config_default_tax_code"] = "قانون الضرائب الافتراضي";
|
||||
$lang["config_default_tax_jurisdiction"] = "الاختصاص الضريبي الافتراضي";
|
||||
$lang["config_default_tax_name_number"] = "يجب أن يكون الاسم الافتراضي للضريبة سلسلة.";
|
||||
$lang["config_default_tax_name_required"] = "اسم الضريبة الافتراضية مطلوب.";
|
||||
$lang["config_default_tax_rate"] = "معدل الضريبة الافتراضي %";
|
||||
@@ -112,6 +113,7 @@ $lang["config_email_smtp_user"] = "اسم مستخدم SMTP";
|
||||
$lang["config_enforce_privacy"] = "فرض نظام الخصوصية";
|
||||
$lang["config_enforce_privacy_tooltip"] = "حماية ملفات ومعلومات المستخدم عند الحذف";
|
||||
$lang["config_fax"] = "الفاكس";
|
||||
$lang["config_file_perm"] = "There are problems with file permissions please fix and reload this page.";
|
||||
$lang["config_financial_year"] = "بداية السنة المالية";
|
||||
$lang["config_financial_year_apr"] = "1 أبريل";
|
||||
$lang["config_financial_year_aug"] = "1 أغسطس";
|
||||
@@ -136,14 +138,25 @@ $lang["config_general_configuration"] = "إعدادات عامة";
|
||||
$lang["config_giftcard_number"] = "رقم كارت الهدية";
|
||||
$lang["config_giftcard_random"] = "توليد عشوائي";
|
||||
$lang["config_giftcard_series"] = "توليد في السلسلة";
|
||||
$lang["config_image_allowed_file_types"] = "";
|
||||
$lang["config_image_max_height_tooltip"] = "";
|
||||
$lang["config_image_max_size_tooltip"] = "";
|
||||
$lang["config_image_max_width_tooltip"] = "";
|
||||
$lang["config_image_restrictions"] = "";
|
||||
$lang["config_include_hsn"] = "تشمل الدعم لرمز نظام منسق";
|
||||
$lang["config_info"] = "معلومات";
|
||||
$lang["config_info_configuration"] = "معلومات الشركة";
|
||||
$lang["config_integrations"] = "التكامل";
|
||||
$lang["config_integrations_configuration"] = "تكامل";
|
||||
$lang["config_invoice"] = "الفاتورة";
|
||||
$lang["config_invoice_configuration"] = "إعدادات طباعة الفاتورة";
|
||||
$lang["config_invoice_default_comments"] = "التعليق الافتراضي على الفاتورة";
|
||||
$lang["config_invoice_email_message"] = "قالب البريد الإلكتروني للفاتورة";
|
||||
$lang["config_invoice_enable"] = "تفعيل الفوترة";
|
||||
$lang["config_invoice_printer"] = "طابعة الفواتير";
|
||||
$lang["config_invoice_type"] = "نوع الفاتورة";
|
||||
$lang["config_is_readable"] = "";
|
||||
$lang["config_is_writable"] = "is writable, but the permissions are higher than 750.";
|
||||
$lang["config_jsprintsetup_required"] = "تحذير! هذه الخاصية غير المفعلة سوف تعمل فقط مع وجود الاضافة jsPrintSetup على متصفح فايرفوكس. حفظ على أى حال؟";
|
||||
$lang["config_language"] = "اللغة";
|
||||
$lang["config_last_used_invoice_number"] = "اخر رقم مستخدم للفاتورة";
|
||||
@@ -180,6 +193,8 @@ $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_multi_pack_enabled"] = "رزم متعددة لكل صنف";
|
||||
$lang["config_no_risk"] = "No security/vulnerability risks.";
|
||||
$lang["config_none"] = "لايوجد";
|
||||
$lang["config_notify_alignment"] = "مكان عرض رسائل المعلومات";
|
||||
$lang["config_number_format"] = "شكل الرقم";
|
||||
@@ -187,7 +202,10 @@ $lang["config_number_locale"] = "التهيئة الاقليمية";
|
||||
$lang["config_number_locale_invalid"] = "التهيئة الإقليمية المختارة غير صحية، راجع الرابط الموجود فى الملاحظة لاختيار تهيئة مناسبة.";
|
||||
$lang["config_number_locale_required"] = "رقم التهيئة الإقليمية مطلوب.";
|
||||
$lang["config_number_locale_tooltip"] = "إيجاد تهيئة إقليمية مناسبة عبر الرابط.";
|
||||
$lang["config_os_timezone"] = "";
|
||||
$lang["config_ospos_info"] = "معلومات التثبيت OSPOS";
|
||||
$lang["config_payment_options_order"] = "ترتيب خيارات الدفع";
|
||||
$lang["config_perm_risk"] = "Permissions higher than 750 leaves this software at risk.";
|
||||
$lang["config_phone"] = "هاتف الشركة";
|
||||
$lang["config_phone_required"] = "هاتف الشركة مطلوب.";
|
||||
$lang["config_print_bottom_margin"] = "الهامش السفلي";
|
||||
@@ -226,12 +244,14 @@ $lang["config_receipt_short"] = "مختصر";
|
||||
$lang["config_receipt_show_company_name"] = "عرض اسم الشركة";
|
||||
$lang["config_receipt_show_description"] = "عرض الوصف";
|
||||
$lang["config_receipt_show_serialnumber"] = "عرض الرقم المسلسل";
|
||||
$lang["config_receipt_show_tax_ind"] = "";
|
||||
$lang["config_receipt_show_taxes"] = "عرض الضرائب";
|
||||
$lang["config_receipt_show_total_discount"] = "عرض إجمالى الخصم";
|
||||
$lang["config_receipt_template"] = "قالب الايصال";
|
||||
$lang["config_receiving_calculate_average_price"] = "حساب متوسط سعر الأصناف المستلمة";
|
||||
$lang["config_recv_invoice_format"] = "شكل فاتورة الإستلام";
|
||||
$lang["config_register_mode_default"] = "نمط التسجيل الافتراضي";
|
||||
$lang["config_report_an_issue"] = "";
|
||||
$lang["config_return_policy_required"] = "سياسة الإسترجاع مطلوب.";
|
||||
$lang["config_reward"] = "المكافاة";
|
||||
$lang["config_reward_configuration"] = "اعدادات المكافاة";
|
||||
@@ -240,6 +260,8 @@ $lang["config_sales_invoice_format"] = "شكل فاتورة البيع";
|
||||
$lang["config_sales_quote_format"] = "شكل فاتورة عرض الاسعار";
|
||||
$lang["config_saved_successfully"] = "تم حفظ التهيئة بنجاح.";
|
||||
$lang["config_saved_unsuccessfully"] = "لم يتم حفظ التهيئة بنجاح.";
|
||||
$lang["config_security_issue"] = "Security Vulnerability Warning";
|
||||
$lang["config_server_notice"] = "يرجى استخدام المعلومات أدناه للإبلاغ عن المشكلة.";
|
||||
$lang["config_show_office_group"] = "اظهار ايكونة المكتب";
|
||||
$lang["config_statistics"] = "إرسال اﻹحصائيات";
|
||||
$lang["config_statistics_tooltip"] = "إرسال اﻹحصائيات ﻷغراض التطوير و التحسين.";
|
||||
@@ -251,6 +273,8 @@ $lang["config_suggestions_first_column"] = "العامود 1";
|
||||
$lang["config_suggestions_layout"] = "تخطيط اقتراحات البحث";
|
||||
$lang["config_suggestions_second_column"] = "العامود 2";
|
||||
$lang["config_suggestions_third_column"] = "العامود 3";
|
||||
$lang["config_system_conf"] = "Setup & Conf";
|
||||
$lang["config_system_info"] = "System Info";
|
||||
$lang["config_table"] = "جدول";
|
||||
$lang["config_table_configuration"] = "اعدادات الجدول";
|
||||
$lang["config_takings_printer"] = "طابعة الإيراد";
|
||||
@@ -262,11 +286,15 @@ $lang["config_tax_category_required"] = "الفئة الضريبية مطلوب
|
||||
$lang["config_tax_category_used"] = "الفئة الضريبية اللتي تم تحديدها لا يمكن حذفها لانها قيد الاستعمال.";
|
||||
$lang["config_tax_configuration"] = "إعدادات الضريبة";
|
||||
$lang["config_tax_decimals"] = "العلامة العشرية للضريبة";
|
||||
$lang["config_tax_id"] = "الرقم الضريبي";
|
||||
$lang["config_tax_included"] = "شامل الضريبة";
|
||||
$lang["config_theme"] = "السمة";
|
||||
$lang["config_thousands_separator"] = "فاصل الاف";
|
||||
$lang["config_timezone"] = "المنطقة الزمنية";
|
||||
$lang["config_timezone_error"] = "";
|
||||
$lang["config_top"] = "علوى";
|
||||
$lang["config_use_destination_based_tax"] = "استخدام الضريبة المستندة على الوجهة";
|
||||
$lang["config_user_timezone"] = "";
|
||||
$lang["config_website"] = "موقع الشركة";
|
||||
$lang["config_work_order_enable"] = "تفعيل طلبات العمل";
|
||||
$lang["config_work_order_format"] = "شكل طلبات العمل";
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
<?php
|
||||
|
||||
$lang["customers_account_number"] = "رقم الحساب";
|
||||
$lang["customers_account_number_duplicate"] = "رقم الحساب هذا موجود فى قاعدة البيانات من قبل.";
|
||||
$lang["customers_available_points"] = "النقاط المتاحة";
|
||||
@@ -11,17 +12,20 @@ $lang["customers_confirm_delete"] = "هل تريد حذف هؤلاء العمل
|
||||
$lang["customers_confirm_restore"] = "هل انت متأكد من إستعادة قاعدة بيانات الزبائن ؟";
|
||||
$lang["customers_consent"] = "موافقة التسجيل";
|
||||
$lang["customers_consent_required"] = "موافقة التسجيل هي خانة اجبارية.";
|
||||
$lang["customers_csv_import_failed"] = "فشل الإستيراد من اكسل";
|
||||
$lang["customers_csv_import_nodata_wrongformat"] = "الملف الذى رفعته إما فارغ أو أنه مختلف البنية.";
|
||||
$lang["customers_csv_import_partially_failed"] = "تم استيراد معظم العملاء. البعض لم يتم استيرادهم ، وهذه هى القائمة:";
|
||||
$lang["customers_csv_import_success"] = "تم استيراد العملاء بنجاح.";
|
||||
$lang["customers_customer"] = "العميل";
|
||||
$lang["customers_date"] = "التاريخ";
|
||||
$lang["customers_discount"] = "نسبة الخصم";
|
||||
$lang["customers_discount_fixed"] = "حسم ثابت";
|
||||
$lang["customers_discount_percent"] = "نسبة الحبم";
|
||||
$lang["customers_discount_type"] = "نوع الحسم";
|
||||
$lang["customers_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_import_items_csv"] = "استيراد العملا ء من ورقة عمل اكسل";
|
||||
$lang["customers_mailchimp_activity_click"] = "النقر على البريد الإلكتروني";
|
||||
$lang["customers_mailchimp_activity_lastopen"] = "آخر رسالة إلكترونية مفتوحة";
|
||||
$lang["customers_mailchimp_activity_open"] = "رسالة إلكترونية مفتوحة";
|
||||
@@ -43,6 +47,7 @@ $lang["customers_successful_adding"] = "لقد أضفت عميل بنجاح";
|
||||
$lang["customers_successful_deleted"] = "لقد قمت بالحذف بنجاح";
|
||||
$lang["customers_successful_updating"] = "لقد قمت بتحديث بيانات العميل بنجاح";
|
||||
$lang["customers_tax_code"] = "كود الضريبة";
|
||||
$lang["customers_tax_id"] = "الرقم الضريبي";
|
||||
$lang["customers_taxable"] = "خاضع للضريبة";
|
||||
$lang["customers_total"] = "المجموع";
|
||||
$lang["customers_update"] = "تحديث بيانات عميل";
|
||||
|
||||
@@ -7,12 +7,12 @@ $lang["datepicker_custom"] = "مخصص";
|
||||
$lang["datepicker_from"] = "من";
|
||||
$lang["datepicker_last_30"] = "أخر 30 يوم";
|
||||
$lang["datepicker_last_7"] = "أخر سبعة أيام";
|
||||
$lang["datepicker_last_financial_year"] = "";
|
||||
$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_financial_year"] = "السنة المالية الحالية";
|
||||
$lang["datepicker_this_month"] = "هذا الشهر";
|
||||
$lang["datepicker_this_year"] = "السنة الحالية";
|
||||
$lang["datepicker_to"] = "إلى";
|
||||
|
||||
@@ -5,6 +5,7 @@ $lang["expenses_categories_add_item"] = "إضافة نوع";
|
||||
$lang["expenses_categories_cannot_be_deleted"] = "فشلت عملية مسح نوع المصاريف";
|
||||
$lang["expenses_categories_category_id"] = "الكود";
|
||||
$lang["expenses_categories_confirm_delete"] = "هل أنت متأكد من مسح نوع المصاريف الذي أخترته؟";
|
||||
$lang["expenses_categories_confirm_restore"] = "هل أنت متأكد من أنك تريد استعادة فئة المصاريف المحددة؟";
|
||||
$lang["expenses_categories_description"] = "وصف النوع";
|
||||
$lang["expenses_categories_error_adding_updating"] = "مشكلة أثناء أضافة أو تعديل نوع المصاريف";
|
||||
$lang["expenses_categories_info"] = "معلومات عن نوع المصاريف";
|
||||
|
||||
@@ -36,6 +36,7 @@ $lang["expenses_no_expenses_to_display"] = "لا يوجد مصاريف في ال
|
||||
$lang["expenses_none_selected"] = "لم يتم تحديد اي خيار";
|
||||
$lang["expenses_one_or_multiple"] = "واحد او أكثر";
|
||||
$lang["expenses_payment"] = "الدفع";
|
||||
$lang["expenses_start_typing_supplier_name"] = "ابدا بكتابة اسم المورد...";
|
||||
$lang["expenses_successful_adding"] = "تم إضافة المصاريف بنجاح";
|
||||
$lang["expenses_successful_deleted"] = "تم مسح المصاريف بنجاح";
|
||||
$lang["expenses_successful_updating"] = "تم تعديل المصاريف بنجاح";
|
||||
|
||||
@@ -17,6 +17,7 @@ $lang["giftcards_confirm_delete"] = "هل أنت متأكد انك تريد حذ
|
||||
$lang["giftcards_confirm_restore"] = "هل تريد بالتأكيد استعادة بطاقة (بطاقات) الهدايا المحددة؟";
|
||||
$lang["giftcards_cost_price"] = "سعر التكلفة";
|
||||
$lang["giftcards_count"] = "تحديث المخزون";
|
||||
$lang["giftcards_csv_import_failed"] = "فشل الإستيراد من اكسل.";
|
||||
$lang["giftcards_current_quantity"] = "الكميات الحالية";
|
||||
$lang["giftcards_description"] = "الوصف";
|
||||
$lang["giftcards_details_count"] = "حركة الكارت";
|
||||
@@ -25,7 +26,6 @@ $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"] = "رقم بطاقة الهدية";
|
||||
|
||||
@@ -6,7 +6,10 @@ $lang["item_kits_cannot_be_deleted"] = "لايمكن حذف مجموعة/مجم
|
||||
$lang["item_kits_confirm_delete"] = "هل أنت متأكد أنك تريد حذف المجموعة؟";
|
||||
$lang["item_kits_confirm_restore"] = "هل أنت متأكد أنك تريد استعادة المجموعة المحددة؟";
|
||||
$lang["item_kits_description"] = "وصف المجموعة";
|
||||
$lang["item_kits_discount"] = "الخصم";
|
||||
$lang["item_kits_discount_fixed"] = "خصم قابل للتعديل";
|
||||
$lang["item_kits_discount_percent"] = "نسبة الخصم";
|
||||
$lang["item_kits_discount_type"] = "نوع الخصم";
|
||||
$lang["item_kits_error_adding_updating"] = "خطاء فى إضافة/تحديث المجموعة.";
|
||||
$lang["item_kits_find_kit_item"] = "صنف لمجموعة";
|
||||
$lang["item_kits_info"] = "معلومات المجموعة";
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
<?php
|
||||
|
||||
$lang["items_add_minus"] = "الكمية المطلوب خصمها أو اضافتها.";
|
||||
$lang["items_allow_alt_desciption"] = "وصف بديل";
|
||||
$lang["items_allow_alt_description"] = "السماح بوصف بديل";
|
||||
$lang["items_amount_entry"] = "إدخال القيمة";
|
||||
$lang["items_bulk_edit"] = "تحرير جماعى";
|
||||
@@ -22,7 +22,12 @@ $lang["items_cost_price"] = "سعر التكلفة";
|
||||
$lang["items_cost_price_number"] = "سعر التكلفة يجب أن يكون رقم.";
|
||||
$lang["items_cost_price_required"] = "سعر التكلفة مطلوب.";
|
||||
$lang["items_count"] = "تحديث المخزون";
|
||||
$lang["items_csv_import_failed"] = "فشل الإستيراد من اكسل";
|
||||
$lang["items_csv_import_nodata_wrongformat"] = "الملف الذى رفعته إما فارغ أو أنه مختلف البنية.";
|
||||
$lang["items_csv_import_partially_failed"] = "يوجد خطأ بنسبة 1% في استيراد الاصناف في السطر: %2. لم يتم استيرادهم.";
|
||||
$lang["items_csv_import_success"] = "تم استيراد الأصناف بنجاح.";
|
||||
$lang["items_current_quantity"] = "الكمية الحالية";
|
||||
$lang["items_default_pack_name"] = "كل";
|
||||
$lang["items_description"] = "الوصف";
|
||||
$lang["items_details_count"] = "حركة الصنف";
|
||||
$lang["items_do_nothing"] = "لاتفعل شئ";
|
||||
@@ -31,20 +36,18 @@ $lang["items_edit_multiple_items"] = "تحريد مجموعة اصناف";
|
||||
$lang["items_empty_upc_items"] = "تفريغ اصناف UPC";
|
||||
$lang["items_error_adding_updating"] = "خطاء فى إضافة/تحديث صنف";
|
||||
$lang["items_error_updating_multiple"] = "خطاء فى تحديث بيانات أصناف";
|
||||
$lang["items_excel_import_failed"] = "فشل الإستيراد من اكسل";
|
||||
$lang["items_excel_import_nodata_wrongformat"] = "الملف الذى رفعته إما فارغ أو أنه مختلف البنية.";
|
||||
$lang["items_excel_import_partially_failed"] = "تم استيراد معظم الأصناف. البعض لم يتم استيرادهم ، وهذه هى القائمة:";
|
||||
$lang["items_excel_import_success"] = "تم استيراد الأصناف بنجاح.";
|
||||
$lang["items_generate_barcodes"] = "توليد أكواد الباركود";
|
||||
$lang["items_hsn_code"] = "تسميات النظام المنسق";
|
||||
$lang["items_image"] = "صورة";
|
||||
$lang["items_import_items_excel"] = "استيراد من اكسل";
|
||||
$lang["items_import_items_csv"] = "استيراد من اكسل";
|
||||
$lang["items_info_provided_by"] = "المعلومات مقدمة بواسطة";
|
||||
$lang["items_inventory"] = "المخزن";
|
||||
$lang["items_inventory_CSV_import_quantity"] = "العدد المستورد من ملفات ال CSV";
|
||||
$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_in_out_quantity"] = "+- كمية";
|
||||
$lang["items_inventory_remarks"] = "ملاحظات";
|
||||
$lang["items_is_deleted"] = "حذفت";
|
||||
$lang["items_is_serialized"] = "الصنف له رقم مسلسل";
|
||||
@@ -54,6 +57,7 @@ $lang["items_item_number_duplicate"] = "رقم الصنف موجود فى قاع
|
||||
$lang["items_kit"] = "مجموعة اصناف";
|
||||
$lang["items_location"] = "مكان";
|
||||
$lang["items_low_inventory_items"] = "الأصناف التى لا يوجد لها مخزون";
|
||||
$lang["items_low_sell_item"] = "الصنف المركب";
|
||||
$lang["items_manually_editing_of_quantity"] = "تحرير الكمية يدوياً";
|
||||
$lang["items_name"] = "اسم الصنف";
|
||||
$lang["items_name_required"] = "اسم الصنف مطلوب.";
|
||||
@@ -66,6 +70,8 @@ $lang["items_nonstock"] = "غير مخزنة";
|
||||
$lang["items_number_information"] = "رقم الصنف";
|
||||
$lang["items_number_required"] = "مطلوب UPC/EAN/ISBN رقم الباركود.";
|
||||
$lang["items_one_or_multiple"] = "صنف/أصناف";
|
||||
$lang["items_pack_name"] = "اسم الحزمة";
|
||||
$lang["items_qty_per_pack"] = "العدد بكل الحزمة";
|
||||
$lang["items_quantity"] = "الكمية";
|
||||
$lang["items_quantity_number"] = "الكمية يجب أن تكون رقم.";
|
||||
$lang["items_quantity_required"] = "الكمية مطلوبة.";
|
||||
@@ -78,7 +84,6 @@ $lang["items_retrive_item_info"] = "استرجاع بيانات الصنف";
|
||||
$lang["items_sales_tax_1"] = "ضريبة المبيعات";
|
||||
$lang["items_sales_tax_2"] = "ضريبة المبيعات 2";
|
||||
$lang["items_search_attributes"] = "بحث الحقول المخصصة";
|
||||
$lang["items_search_custom_items"] = "بحث الاصناف المخصصة";
|
||||
$lang["items_select_image"] = "اختار صورة";
|
||||
$lang["items_serialized_items"] = "أصناف مسلسلة";
|
||||
$lang["items_standard"] = "اساسي";
|
||||
@@ -92,10 +97,12 @@ $lang["items_successful_updating"] = "لقد تم تحديث بيانات صنف
|
||||
$lang["items_supplier"] = "المورد";
|
||||
$lang["items_tax_1"] = "الضريبة 1";
|
||||
$lang["items_tax_2"] = "الضريبة 2";
|
||||
$lang["items_tax_category"] = "الفئة الضريبية";
|
||||
$lang["items_tax_percent"] = "نسبة الضريبة";
|
||||
$lang["items_tax_percent_number"] = "نسبة الضريبة يجب ان تكون رقم";
|
||||
$lang["items_tax_percent_required"] = "نسبة الضريبة مطلوبة.";
|
||||
$lang["items_tax_percents"] = "نسبة/نسب الضريبة";
|
||||
$lang["items_temp"] = "مؤقت";
|
||||
$lang["items_type"] = "نوع الصنف";
|
||||
$lang["items_unit_price"] = "السعر";
|
||||
$lang["items_unit_price_number"] = "السعر يجب أن يكون رقم.";
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<?php
|
||||
|
||||
$lang["login_gcaptcha"] = "";
|
||||
$lang["login_gcaptcha"] = "أنا لست بوت.";
|
||||
$lang["login_go"] = "البدء";
|
||||
$lang["login_invalid_gcaptcha"] = "";
|
||||
$lang["login_invalid_installation"] = "";
|
||||
$lang["login_invalid_username_and_password"] = "اسم مستخدم/كلمة سر غير صحيح";
|
||||
$lang["login_invalid_gcaptcha"] = "رمز التحقق غير صحيح.";
|
||||
$lang["login_invalid_installation"] = "يوجد مشكلة بالتنصيب, الرجاء التحقق من ملف php.ini.";
|
||||
$lang["login_invalid_username_and_password"] = "اسم مستخدم/كلمة سر غير صحيح.";
|
||||
$lang["login_login"] = "دخول";
|
||||
$lang["login_password"] = "كلمة السر";
|
||||
$lang["login_username"] = "اسم المستخدم";
|
||||
|
||||
@@ -5,7 +5,7 @@ $lang["messages_last_name"] = "الأسم الأخير";
|
||||
$lang["messages_message"] = "الرسالة";
|
||||
$lang["messages_message_placeholder"] = "رسالتك هنا...";
|
||||
$lang["messages_message_required"] = "الرسالة مطلوبة";
|
||||
$lang["messages_multiple_phones"] = " فى حالة إرسال الرسالة لأكثر من شخص قم بفصل الأرقام بعلامة الفاصلة";
|
||||
$lang["messages_multiple_phones"] = "فى حالة إرسال الرسالة لأكثر من شخص قم بفصل الأرقام بعلامة الفاصلة";
|
||||
$lang["messages_phone"] = "رقم المحمول";
|
||||
$lang["messages_phone_number_required"] = "رقم المحمول مطلوب";
|
||||
$lang["messages_phone_placeholder"] = "رقم/أرقام المحمول هنا...";
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
<?php
|
||||
|
||||
$lang["module_attributes"] = "ميزات/مميزات";
|
||||
$lang["module_attributes_desc"] = "إضافة، تعديل، حذف، وبحث بالميزات.";
|
||||
$lang["module_both"] = "الاثنين";
|
||||
$lang["module_cashups"] = "الصندوق النقدي";
|
||||
$lang["module_cashups_desc"] = "إضافة، تعديل، حذف، وبحث بالصندوق النقدي.";
|
||||
$lang["module_config"] = "إعدادات الشركة";
|
||||
$lang["module_config_desc"] = "تغيير إعدادات الشركة.";
|
||||
$lang["module_customers"] = "العملاء";
|
||||
|
||||
@@ -35,6 +35,7 @@ $lang["receivings_register"] = "استلام الأصناف";
|
||||
$lang["receivings_requisition"] = "طلب شراء";
|
||||
$lang["receivings_return"] = "إرتجاع لمورد";
|
||||
$lang["receivings_select_supplier"] = "اختار المورد (اختيارى)";
|
||||
$lang["receivings_ship_pack"] = "حزمة توصيل";
|
||||
$lang["receivings_start_typing_supplier_name"] = "ابداء بكتابة اسم المورد....";
|
||||
$lang["receivings_stock"] = "المخزون";
|
||||
$lang["receivings_stock_destination"] = "المخزون المحول له";
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<?php
|
||||
<?php
|
||||
|
||||
$lang["reports_all"] = "الكل";
|
||||
$lang["reports_authority"] = "السلطة";
|
||||
$lang["reports_canceled"] = "ملغى";
|
||||
$lang["reports_categories"] = "التصنيفات";
|
||||
$lang["reports_categories_summary_report"] = "تقرير ملخص التصنيفات";
|
||||
@@ -30,7 +32,9 @@ $lang["reports_detailed_reports"] = "التقارير التفصيلية";
|
||||
$lang["reports_detailed_requisition_report"] = "تقرير مفصل لطلبات الشراء";
|
||||
$lang["reports_detailed_sales_report"] = "تقرير مفصل للمبيعات";
|
||||
$lang["reports_discount"] = "الخصم";
|
||||
$lang["reports_discount_fixed"] = "حسم ثابت";
|
||||
$lang["reports_discount_percent"] = "نسبة الخصم";
|
||||
$lang["reports_discount_type"] = "نوع الحسم";
|
||||
$lang["reports_discounts"] = "الخصومات";
|
||||
$lang["reports_discounts_summary_report"] = "تقرير ملخص الخصومات";
|
||||
$lang["reports_earned"] = "النقاط المحصلة";
|
||||
@@ -60,8 +64,10 @@ $lang["reports_items"] = "الأصناف";
|
||||
$lang["reports_items_purchased"] = "الأصناف مشتراه";
|
||||
$lang["reports_items_received"] = "الأصناف مستلمة";
|
||||
$lang["reports_items_summary_report"] = "تقرير ملخص الأصناف";
|
||||
$lang["reports_jurisdiction"] = "الاختصاص القضائي";
|
||||
$lang["reports_low_inventory"] = "النواقص";
|
||||
$lang["reports_low_inventory_report"] = "تقرير نواقص المخزون";
|
||||
$lang["reports_low_sell_quantity"] = "كميات حسب الصنف الاولي";
|
||||
$lang["reports_more_than_zero"] = "أكثر من صفر";
|
||||
$lang["reports_name"] = "الاسم";
|
||||
$lang["reports_no_reports_to_display"] = "لايوجد أصناف لعرضها.";
|
||||
@@ -96,6 +102,8 @@ $lang["reports_sale_type"] = "طريقة البيع";
|
||||
$lang["reports_sales"] = "بيع";
|
||||
$lang["reports_sales_amount"] = "كمية المبيعات";
|
||||
$lang["reports_sales_summary_report"] = "تقرير ملخص المبيعات";
|
||||
$lang["reports_sales_taxes"] = "ضرائب المبيعات";
|
||||
$lang["reports_sales_taxes_summary_report"] = "تقرير ملخص ضرائب المبيعات";
|
||||
$lang["reports_serial_number"] = "مسلسل";
|
||||
$lang["reports_sold_by"] = "البائع";
|
||||
$lang["reports_sold_to"] = "مباع الى";
|
||||
@@ -108,13 +116,24 @@ $lang["reports_supplier"] = "المورد";
|
||||
$lang["reports_suppliers"] = "الموردين";
|
||||
$lang["reports_suppliers_summary_report"] = "تقرير ملخص الموردين";
|
||||
$lang["reports_tax"] = "الضريبة";
|
||||
$lang["reports_tax_category"] = "الفئة الضريبية";
|
||||
$lang["reports_tax_percent"] = "نسبة الضريبة";
|
||||
$lang["reports_tax_rate"] = "معدل الضريبة";
|
||||
$lang["reports_taxes"] = "الضرائب";
|
||||
$lang["reports_taxes_summary_report"] = "تقرير ملخص الضرائب";
|
||||
$lang["reports_total"] = "الإجمالى";
|
||||
$lang["reports_total_inventory_value"] = "إجمالى قيمة المخزن";
|
||||
$lang["reports_total_low_sell_quantity"] = "مجموع الكميات حسب الصنف الاولي";
|
||||
$lang["reports_total_quantity"] = "الكمية/العدد";
|
||||
$lang["reports_total_retail"] = "قيمة المبيع";
|
||||
$lang["reports_trans_amount"] = "قيمة العملية التجارية";
|
||||
$lang["reports_trans_due"] = "مستحق";
|
||||
$lang["reports_trans_group"] = "مجموعة العمليات التجارية";
|
||||
$lang["reports_trans_nopay_sales"] = "المبيعات الغير مسدده";
|
||||
$lang["reports_trans_payments"] = "المدفوعات";
|
||||
$lang["reports_trans_refunded"] = "المرتجع";
|
||||
$lang["reports_trans_sales"] = "المبيعات";
|
||||
$lang["reports_trans_type"] = "نوع العملية التجارية";
|
||||
$lang["reports_type"] = "النوع";
|
||||
$lang["reports_unit_price"] = "السعر";
|
||||
$lang["reports_used"] = "النقاط المستخدمة";
|
||||
|
||||
@@ -1,15 +1,19 @@
|
||||
<?php
|
||||
<?php
|
||||
|
||||
$lang["customers_available_points"] = "النقاط المتاحة";
|
||||
$lang["rewards_package"] = "مكافآت";
|
||||
$lang["rewards_remaining_balance"] = "رصيد النقاط المتبقي هو ";
|
||||
$lang["sales_account_number"] = "حساب";
|
||||
$lang["sales_add_payment"] = "إضافة دفع";
|
||||
$lang["sales_amount_due"] = "المبلغ المطلوب";
|
||||
$lang["sales_amount_tendered"] = "المبلغ المدفوع";
|
||||
$lang["sales_authorized_signature"] = "توقيع معتمد";
|
||||
$lang["sales_cancel_sale"] = "الغاء عملية البيع";
|
||||
$lang["sales_cash"] = "نقدى";
|
||||
$lang["sales_cash_deposit"] = "ايداع نقدي";
|
||||
$lang["sales_cash_filter"] = "نقدى";
|
||||
$lang["sales_change_due"] = "الباقى";
|
||||
$lang["sales_change_price"] = "";
|
||||
$lang["sales_check"] = "شيك";
|
||||
$lang["sales_check_balance"] = "تذكير بموعد الشيك";
|
||||
$lang["sales_check_filter"] = "شيك";
|
||||
@@ -21,13 +25,14 @@ $lang["sales_confirm_delete"] = "هل تريد حذف عمليات البيع ا
|
||||
$lang["sales_confirm_restore"] = "هل انت متاكد من استعادة عملية البيع؟";
|
||||
$lang["sales_credit"] = "بطاقة إئتمانية";
|
||||
$lang["sales_credit_deposit"] = "ايداع ببطاقة ائتمان";
|
||||
$lang["sales_credit_filter"] = "";
|
||||
$lang["sales_customer"] = "العميل";
|
||||
$lang["sales_customer_address"] = "العنوان";
|
||||
$lang["sales_customer_discount"] = "الخصم";
|
||||
$lang["sales_customer_email"] = "البريد الإلكترونى";
|
||||
$lang["sales_customer_location"] = "المكان";
|
||||
$lang["sales_customer_mailchimp_status"] = "حالة ميل تشيمب";
|
||||
$lang["sales_customer_optional"] = "(اختياري)";
|
||||
$lang["sales_customer_optional"] = "(مطلوب للدفعات المستحقة)";
|
||||
$lang["sales_customer_required"] = "(اجباري)";
|
||||
$lang["sales_customer_total"] = "المجموع";
|
||||
$lang["sales_date"] = "تاريخ البيع";
|
||||
@@ -43,7 +48,7 @@ $lang["sales_delete_unsuccessful"] = "لقد فشل حذف عملية البيع
|
||||
$lang["sales_description_abbrv"] = "الوصف.";
|
||||
$lang["sales_discard"] = "الغاء";
|
||||
$lang["sales_discard_quote"] = "";
|
||||
$lang["sales_discount"] = "خصم %";
|
||||
$lang["sales_discount"] = "خصم";
|
||||
$lang["sales_discount_included"] = "% خصم";
|
||||
$lang["sales_discount_short"] = "%";
|
||||
$lang["sales_due"] = "مستحق";
|
||||
@@ -62,6 +67,7 @@ $lang["sales_giftcard_balance"] = "رصيد بطاقة الهدية";
|
||||
$lang["sales_giftcard_number"] = "رقم بطاقة الهدية";
|
||||
$lang["sales_group_by_category"] = "تصفية حسب الفئة";
|
||||
$lang["sales_group_by_type"] = "تجميع حسب النوع";
|
||||
$lang["sales_hsn"] = "رمز نظام منسق";
|
||||
$lang["sales_id"] = "كود عملية البيع";
|
||||
$lang["sales_include_prices"] = "يشمل الاسعار؟";
|
||||
$lang["sales_invoice"] = "فاتورة";
|
||||
@@ -72,6 +78,11 @@ $lang["sales_invoice_no_email"] = "هذا العميل ليس لدية بريد
|
||||
$lang["sales_invoice_number"] = "فاتورة رقم #";
|
||||
$lang["sales_invoice_number_duplicate"] = "من فضلك أدخل رقم فاتورة غير مكرر.";
|
||||
$lang["sales_invoice_sent"] = "تم إرسال الفاتورة إلى";
|
||||
$lang["sales_invoice_total"] = "إجمالي الفاتورة";
|
||||
$lang["sales_invoice_type_custom_invoice"] = "فاتورة مخصصة (custom_invoice.php)";
|
||||
$lang["sales_invoice_type_custom_tax_invoice"] = "الفاتورة الضريبية المخصصة (custom_tax_invoice.php)";
|
||||
$lang["sales_invoice_type_invoice"] = "الفاتورة (invoice.php)";
|
||||
$lang["sales_invoice_type_tax_invoice"] = "الفاتورة الضريبية (tax_invoice.php)";
|
||||
$lang["sales_invoice_unsent"] = "فشل إرسال الفاتورة إلى";
|
||||
$lang["sales_invoice_update"] = "إعادة العد";
|
||||
$lang["sales_item_insufficient_of_stock"] = "لايوجد مخزون كافى من الصنف.";
|
||||
@@ -83,11 +94,12 @@ $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_description"] = "بدون وصف";
|
||||
$lang["sales_no_filter"] = "الكل";
|
||||
$lang["sales_no_items_in_cart"] = "لايوجد أصناف فى السلة.";
|
||||
$lang["sales_no_sales_to_display"] = "لاتوجد عمليات بيع لعرضها.";
|
||||
$lang["sales_none_selected"] = "لم تقم بإختيار أى عمليات بيع لحذفها.";
|
||||
$lang["sales_nontaxed_ind"] = "";
|
||||
$lang["sales_not_authorized"] = "هذه العملية لا يمكن فعلها لعدم تخويلك.";
|
||||
$lang["sales_one_or_multiple"] = "عمليات بيع";
|
||||
$lang["sales_payment"] = "طريقة الدفع";
|
||||
@@ -111,6 +123,7 @@ $lang["sales_receipt_no_email"] = "هذا العميل ليس له اي بريد
|
||||
$lang["sales_receipt_number"] = "إيصال بيع";
|
||||
$lang["sales_receipt_sent"] = "تم إرسال الإيصال إلى";
|
||||
$lang["sales_receipt_unsent"] = "فشل إرسال الإيصال إلى";
|
||||
$lang["sales_refund"] = "";
|
||||
$lang["sales_register"] = "مسجل المبيعات";
|
||||
$lang["sales_remove_customer"] = "حذف عميل";
|
||||
$lang["sales_return"] = "إرتجاع";
|
||||
@@ -145,7 +158,10 @@ $lang["sales_suspended_sales"] = "المبيعات المعلقة";
|
||||
$lang["sales_table"] = "طاولة";
|
||||
$lang["sales_takings"] = "المبيع اليومي";
|
||||
$lang["sales_tax"] = "ضريبة";
|
||||
$lang["sales_tax_id"] = "الرقم الضريبي";
|
||||
$lang["sales_tax_invoice"] = "فاتورة ضريبية";
|
||||
$lang["sales_tax_percent"] = "ضريبة %";
|
||||
$lang["sales_taxed_ind"] = "";
|
||||
$lang["sales_total"] = "المجموع";
|
||||
$lang["sales_total_tax_exclusive"] = "الإجمالى بدون الضرائب";
|
||||
$lang["sales_transaction_failed"] = "فشل حركة البيع.";
|
||||
@@ -157,6 +173,7 @@ $lang["sales_unsuccessfully_updated"] = "فشل تحديث عملية البيع
|
||||
$lang["sales_unsuspend"] = "إلغاء تعليق";
|
||||
$lang["sales_unsuspend_and_delete"] = "إلغاء تعليق وحذف";
|
||||
$lang["sales_update"] = "تحديث";
|
||||
$lang["sales_upi"] = "رقم التعريف الشخصي";
|
||||
$lang["sales_work_order"] = "طلب عمل";
|
||||
$lang["sales_work_order_number"] = "رقم طلب العمل";
|
||||
$lang["sales_work_order_number_duplicate"] = "رقم طلب العمل يجب ان يكون فريد.";
|
||||
|
||||
@@ -3,11 +3,14 @@
|
||||
$lang["suppliers_account_number"] = "رقم الحساب";
|
||||
$lang["suppliers_agency_name"] = "اسم الوكالة";
|
||||
$lang["suppliers_cannot_be_deleted"] = "لايمكن حذف المورد/الموردين لوجود مبيعات مرتبطة بهم.";
|
||||
$lang["suppliers_category"] = "الفئة";
|
||||
$lang["suppliers_company_name"] = "اسم الشركة";
|
||||
$lang["suppliers_company_name_required"] = "اسم الشركة مطلوب.";
|
||||
$lang["suppliers_confirm_delete"] = "هل تريد حقا حذف هؤلاء الموردين؟";
|
||||
$lang["suppliers_confirm_restore"] = "هل تريد بالتأكيد استعادة المورد (الموردين) المحددين؟";
|
||||
$lang["suppliers_cost"] = "مورد كلفة";
|
||||
$lang["suppliers_error_adding_updating"] = "خطاء فى إضافة/تحديث المورد.";
|
||||
$lang["suppliers_goods"] = "مورد بضائع";
|
||||
$lang["suppliers_new"] = "مورد جديد";
|
||||
$lang["suppliers_none_selected"] = "لم تختار موردين لحذفهم.";
|
||||
$lang["suppliers_one_or_multiple"] = "مورد/موردين";
|
||||
@@ -16,4 +19,5 @@ $lang["suppliers_successful_deleted"] = "لقد تم حذف المورد بنج
|
||||
$lang["suppliers_successful_updating"] = "لقد تم تحديث بيانات المورد بنجاح";
|
||||
$lang["suppliers_supplier"] = "مورد";
|
||||
$lang["suppliers_supplier_id"] = "كود المورد";
|
||||
$lang["suppliers_tax_id"] = "الرقم الضريبي";
|
||||
$lang["suppliers_update"] = "تحديث بيانات المورد";
|
||||
|
||||
@@ -1,32 +1,80 @@
|
||||
<?php
|
||||
|
||||
$lang["taxes_add_exception"] = "أضافة أستثناء";
|
||||
$lang["taxes_confirm_delete"] = "هل أنت متأكد من تغيير الكود الضريبي؟ هذا الأجراء غير قابل للرجوع.";
|
||||
$lang["taxes_cascade"] = "تتالي";
|
||||
$lang["taxes_cascade_sequence"] = "تسلسل متتالي";
|
||||
$lang["taxes_city"] = "مدينة";
|
||||
$lang["taxes_code"] = "الشفرة";
|
||||
$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_default_tax_rate"] = "معدل الضريبة الافتراضي";
|
||||
$lang["taxes_error_adding_updating"] = "فشل إضافة أو تحديث قانون الضرائب";
|
||||
$lang["taxes_group_seq"] = "تسلسل المجموعة";
|
||||
$lang["taxes_jurisdiction_name"] = "اسم الولاية القضائية";
|
||||
$lang["taxes_name"] = "الاسم";
|
||||
$lang["taxes_new"] = "ضريبة جديدة";
|
||||
$lang["taxes_no_taxes_to_display"] = "لا يوجد أكواد ضريبية للعرض";
|
||||
$lang["taxes_reporting_authority"] = "السلطة الضريبية";
|
||||
$lang["taxes_round_half_down"] = "نصف الاسفل";
|
||||
$lang["taxes_round_half_even"] = "تقريب للنصف";
|
||||
$lang["taxes_round_half_odd"] = "تقريب غريب";
|
||||
$lang["taxes_round_half_up"] = "تقريب للاعلى";
|
||||
$lang["taxes_rounding_code"] = "كود التقريب";
|
||||
$lang["taxes_sales_tax"] = "ضريبة المبيعات";
|
||||
$lang["taxes_sales_tax_by_invoice"] = "ضريبة المبيعات بالفاتورة";
|
||||
$lang["taxes_sequence"] = "تسلسل";
|
||||
$lang["taxes_state"] = "حالة";
|
||||
$lang["taxes_successful_deleted"] = "تم المسح بنجاح";
|
||||
$lang["taxes_tax_category"] = "نوع الضريبة";
|
||||
$lang["taxes_tax_categories"] = "فئات الضرائب";
|
||||
$lang["taxes_tax_categories_configuration"] = "اعدادات فئات الضرائب";
|
||||
$lang["taxes_tax_categories_saved_successfully"] = "تم حفظ تغييرات الفئات الضريبية";
|
||||
$lang["taxes_tax_categories_saved_unsuccessfully"] = "لم يتم حفظ تغييرات الفئات الضريبة";
|
||||
$lang["taxes_tax_category"] = "الفئة الضريبية";
|
||||
$lang["taxes_tax_category_code"] = "رمز الفئة الضريبية";
|
||||
$lang["taxes_tax_category_duplicate"] = "الفئة الضريبية مكررة";
|
||||
$lang["taxes_tax_category_invalid_chars"] = "أحرف غير صالحة في اسم الفئة الضريبية";
|
||||
$lang["taxes_tax_category_name"] = "اسم فئة الضريبة";
|
||||
$lang["taxes_tax_category_new"] = "فئة الضريبية جديدة";
|
||||
$lang["taxes_tax_category_required"] = "الفئة الضريبة مطلوبة";
|
||||
$lang["taxes_tax_code"] = "كود الضريبة";
|
||||
$lang["taxes_tax_code_cannot_be_deleted"] = "فشل مسح الكود الضريبي.";
|
||||
$lang["taxes_tax_code_cannot_be_deleted"] = "فشل مسح الكود الضريبي";
|
||||
$lang["taxes_tax_code_duplicate"] = "رمز الضريبة مكرر";
|
||||
$lang["taxes_tax_code_invalid_chars"] = "أحرف لا يمكن استعمالها في قانون الضرائب";
|
||||
$lang["taxes_tax_code_name"] = "اسم الكود الضريبي";
|
||||
$lang["taxes_tax_code_required"] = "حقل الكود الضريبي مطلوب.";
|
||||
$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_codes"] = "الرموز الضريبية";
|
||||
$lang["taxes_tax_codes_configuration"] = "اعدادات الرموز الضريبية";
|
||||
$lang["taxes_tax_codes_saved_successfully"] = "تم حفظ تغييرات قانون الضرائب";
|
||||
$lang["taxes_tax_codes_saved_unsuccessfully"] = "لم يتم حفظ تغييرات قانون الضريبة";
|
||||
$lang["taxes_tax_excluded"] = "لا تشمل الضرائب";
|
||||
$lang["taxes_tax_group"] = "المجموعة الضريبية";
|
||||
$lang["taxes_tax_group_not_unique"] = "";
|
||||
$lang["taxes_tax_group_sequence"] = "تسلسل مجموعة الضرائب";
|
||||
$lang["taxes_tax_included"] = "الضريبة مشمولة";
|
||||
$lang["taxes_tax_jurisdiction"] = "الاختصاص الضريبي";
|
||||
$lang["taxes_tax_jurisdiction_duplicate"] = "تكرير الاختصاص الضريبي";
|
||||
$lang["taxes_tax_jurisdiction_invalid_chars"] = "أحرف لا يمكن استعمالها في اسم الولاية القضائية";
|
||||
$lang["taxes_tax_jurisdiction_required"] = "الاختصاص الضريبي هي خانة اجبارية";
|
||||
$lang["taxes_tax_jurisdictions"] = "الاختصاصات الضريبية";
|
||||
$lang["taxes_tax_jurisdictions_configuration"] = "اعجدادات الاختصاصات الضريبية";
|
||||
$lang["taxes_tax_jurisdictions_saved_successfully"] = "تم حفظ تغييرات الاختصاص الضريبي";
|
||||
$lang["taxes_tax_jurisdictions_saved_unsuccessfully"] = "لم يتم حفظ تغييرات الاختصاص الضريبي";
|
||||
$lang["taxes_tax_rate"] = "معدل الضريبة الافتراضي %";
|
||||
$lang["taxes_tax_rate_numeric"] = "معدل الضريبة الافتراضي يجب أن يكون رقم.";
|
||||
$lang["taxes_tax_rate_required"] = "معدل الضريبة الافتراضي مطلوب.";
|
||||
$lang["taxes_update"] = "تعديل نوع ضريبة المبيعات";
|
||||
$lang["taxes_tax_rate_configuration"] = "اعجدادات معدل الضريبة";
|
||||
$lang["taxes_tax_rate_error_adding_updating"] = "فشل إضافة أو تحديث معدل الضريبة";
|
||||
$lang["taxes_tax_rate_numeric"] = "معدل الضريبة الافتراضي يجب أن يكون رقم";
|
||||
$lang["taxes_tax_rate_required"] = "معدل الضريبة الافتراضي مطلوب";
|
||||
$lang["taxes_tax_rate_successful_updated"] = "لقد تم بالتحديث بنجاح";
|
||||
$lang["taxes_tax_rate_successfully_added"] = "لقد تم الاضافة بنجاح";
|
||||
$lang["taxes_tax_rates"] = "معدلات الضريبة";
|
||||
$lang["taxes_tax_rates_configuration"] = "اعدادات معدلات الضريبة";
|
||||
$lang["taxes_tax_rounding"] = "التقريب الضريبي";
|
||||
$lang["taxes_tax_type"] = "نوع الضريبة";
|
||||
$lang["taxes_update"] = "تحديث معدل الضريبة";
|
||||
$lang["taxes_vat_tax"] = "ضريبة القيمة المضافة";
|
||||
|
||||
31
application/language/ar-LB/attributes_lang.php
Normal file
31
application/language/ar-LB/attributes_lang.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
$lang["attributes_attribute_value_invalid_chars"] = "الميزات لا يمكن أن تحتوي على ':' أو'|'";
|
||||
$lang["attributes_confirm_delete"] = "هل أنت متأكد من أنك تريد حذف الميزات المحددة ؟";
|
||||
$lang["attributes_confirm_restore"] = "هل أنت متأكد من أنك تريد استعادة السمة (السمات) المحددة؟";
|
||||
$lang["attributes_definition_cannot_be_deleted"] = "لا يمكن حذف السمات المحددة";
|
||||
$lang["attributes_definition_error_adding_updating"] = "لا يمكن إضافة السمة ٪1 أو تحديثها. يرجى التحقق من سجل الخطأ.";
|
||||
$lang["attributes_definition_flags"] = "رؤية الميزات";
|
||||
$lang["attributes_definition_group"] = "المجموعة";
|
||||
$lang["attributes_definition_id"] = "كود";
|
||||
$lang["attributes_definition_name"] = "إضافة ميزة";
|
||||
$lang["attributes_definition_name_required"] = "اسم الميزة هي خانة اجبارية";
|
||||
$lang["attributes_definition_one_or_multiple"] = "ميزة/ميزات";
|
||||
$lang["attributes_definition_successful_adding"] = "لقد تم إضافة صنف بنجاح";
|
||||
$lang["attributes_definition_successful_deleted"] = "لقد تم حذف ميزة بنجاح";
|
||||
$lang["attributes_definition_successful_updating"] = "تم تعديل الميزة بنجاح";
|
||||
$lang["attributes_definition_type"] = "نوع الميزة";
|
||||
$lang["attributes_definition_type_required"] = "نوع الميزة هي خانة إجبارية";
|
||||
$lang["attributes_definition_unit"] = "وحدة قياس";
|
||||
$lang["attributes_definition_values"] = "قيمة الميزة";
|
||||
$lang["attributes_new"] = "اضافة ميزة جديده";
|
||||
$lang["attributes_no_attributes_to_display"] = "لا يوجد اصناف للعرض";
|
||||
$lang["attributes_receipt_visibility"] = "وصل";
|
||||
$lang["attributes_show_in_items"] = "اظهار في الصنف";
|
||||
$lang["attributes_show_in_items_visibility"] = "الصنف";
|
||||
$lang["attributes_show_in_receipt"] = "اظهار على الوصل";
|
||||
$lang["attributes_show_in_receivings"] = "اظهار في استلام البضائع";
|
||||
$lang["attributes_show_in_receivings_visibility"] = "استلام البضائع";
|
||||
$lang["attributes_show_in_sales"] = "اظهار خلال البيع";
|
||||
$lang["attributes_show_in_sales_visibility"] = "البيع";
|
||||
$lang["attributes_update"] = "تحديث الميزات";
|
||||
10
application/language/ar-LB/bootstrap_tables_lang.php
Normal file
10
application/language/ar-LB/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"] = "تغيير";
|
||||
38
application/language/ar-LB/cashups_lang.php
Normal file
38
application/language/ar-LB/cashups_lang.php
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
$lang["cashups_amount"] = "قيمة المبلغ";
|
||||
$lang["cashups_amount_number"] = "قيمة المبلغ يجب ان تتكون من ارقام";
|
||||
$lang["cashups_amount_required"] = "قيمة المبلغ هي خانة إجبارية.";
|
||||
$lang["cashups_cannot_be_deleted"] = "لا يمكن حذف الصندوق النقدي";
|
||||
$lang["cashups_close_date"] = "تاريخ تسكير الصندوق";
|
||||
$lang["cashups_close_employee"] = "تم التسكير من قبل";
|
||||
$lang["cashups_closed_amount_card"] = "بطاقات ائتمان";
|
||||
$lang["cashups_closed_amount_cash"] = "الصندوق النقدي";
|
||||
$lang["cashups_closed_amount_check"] = "شيكات";
|
||||
$lang["cashups_closed_amount_due"] = "الديون";
|
||||
$lang["cashups_closed_amount_total"] = "المجموع";
|
||||
$lang["cashups_closed_date"] = "تاريخ تسكير الصندوق";
|
||||
$lang["cashups_confirm_delete"] = "هل انت متأكد من حذف الصندوق النقدي؟";
|
||||
$lang["cashups_confirm_restore"] = "هل انت متأكد من استعادة الصندوق النقدي؟";
|
||||
$lang["cashups_date_number"] = "التاريخ يجب ان يكون مكون من ارقام";
|
||||
$lang["cashups_date_required"] = "التاريخ هي خانة اجبارية";
|
||||
$lang["cashups_description"] = "الوصف";
|
||||
$lang["cashups_error_adding_updating"] = "خطأ في تعديل او اضافة صندوق نقدي";
|
||||
$lang["cashups_id"] = "كود";
|
||||
$lang["cashups_info"] = "معلومات عن الصندوق النقدي";
|
||||
$lang["cashups_is_deleted"] = "محذوف";
|
||||
$lang["cashups_new"] = "صندوق نقدي جديد";
|
||||
$lang["cashups_no_cashups_to_display"] = "لا يوجد صناديق نقدية للاظهار";
|
||||
$lang["cashups_none_selected"] = "لم يتم اختيار اي صندوق نقدي";
|
||||
$lang["cashups_note"] = "ملاحظات";
|
||||
$lang["cashups_one_or_multiple"] = "صندوق او صناديق نقدية";
|
||||
$lang["cashups_open_amount_cash"] = "بداية صندوق نقدي";
|
||||
$lang["cashups_open_date"] = "تاريخ بداية الصندوق النقدي";
|
||||
$lang["cashups_open_employee"] = "تمت بداية الصندوق النقدي من قبل";
|
||||
$lang["cashups_opened_date"] = "تاريخ بداية الصندوق النقدي";
|
||||
$lang["cashups_successful_adding"] = "تمت إضافة الصندوق النقدي بنجاح";
|
||||
$lang["cashups_successful_deleted"] = "تم حذف الصندوق النقدي بنجاح";
|
||||
$lang["cashups_successful_updating"] = "تم تعديل الصندوق النقدي بنجاح";
|
||||
$lang["cashups_total"] = "المجموع";
|
||||
$lang["cashups_transfer_amount_cash"] = "حركة الصندوق";
|
||||
$lang["cashups_update"] = "تعديل/تحديث الصندوق النقدي";
|
||||
71
application/language/ar-LB/common_lang.php
Normal file
71
application/language/ar-LB/common_lang.php
Normal file
@@ -0,0 +1,71 @@
|
||||
<?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_copyrights"] = "© 2010 - %1";
|
||||
$lang["common_correct_errors"] = "يرجى تصحيح الأخطاء المحددة قبل الحفظ";
|
||||
$lang["common_country"] = "البلد";
|
||||
$lang["common_date"] = "التاريخ";
|
||||
$lang["common_delete"] = "حذف";
|
||||
$lang["common_det"] = "تفاصيل";
|
||||
$lang["common_download_import_template"] = "تنزيل قالب الاستيراد من اكسل (CSV)";
|
||||
$lang["common_edit"] = "تحرير";
|
||||
$lang["common_email"] = "بريد إلكتروني";
|
||||
$lang["common_email_invalid_format"] = "شكل البريد الإلكتروني غير صحيح.";
|
||||
$lang["common_export_csv"] = "تصدير إلى اكسل";
|
||||
$lang["common_export_csv_no"] = "لا";
|
||||
$lang["common_export_csv_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_csv"] = "استيراد من اكسل";
|
||||
$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_page"] = "الأخيرة";
|
||||
$lang["common_learn_about_project"] = "للتعرف على أخر المعلومات حول المشروع.";
|
||||
$lang["common_list_of"] = "قائمة بـ";
|
||||
$lang["common_logout"] = "خروج";
|
||||
$lang["common_migration_needed"] = "سيبدأ ترحيل قاعدة البيانات إلى ٪1 بعد تسجيل الدخول.";
|
||||
$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 Of Sale";
|
||||
$lang["common_zip"] = "الرقم البريدى";
|
||||
300
application/language/ar-LB/config_lang.php
Normal file
300
application/language/ar-LB/config_lang.php
Normal file
@@ -0,0 +1,300 @@
|
||||
<?php
|
||||
|
||||
$lang["config_address"] = "عنوان الشركة";
|
||||
$lang["config_address_required"] = "عنوان الشركة مطلوب.";
|
||||
$lang["config_all_set"] = "All file permissions are set correctly!";
|
||||
$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"] = "الخط";
|
||||
$lang["config_barcode_formats"] = "اشكال الادخال";
|
||||
$lang["config_barcode_generate_if_empty"] = "توليد اذا كان الباركود فارغ.";
|
||||
$lang["config_barcode_height"] = "الارتفاع (px)";
|
||||
$lang["config_barcode_id"] = "كود/اسم الصنف";
|
||||
$lang["config_barcode_info"] = "معلومات اعدادات الباركود";
|
||||
$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_width"] = "عرض الصفحة";
|
||||
$lang["config_barcode_price"] = "السعر";
|
||||
$lang["config_barcode_second_row"] = "الصف 2";
|
||||
$lang["config_barcode_third_row"] = "الصف 3";
|
||||
$lang["config_barcode_tooltip"] = "تحذير: قد تؤدي هذه الميزة إلى استيراد اصناف مكررة أو إنشاؤها. لا تستخدمها إذا كنت لا تريد الباركود مكررة.";
|
||||
$lang["config_barcode_type"] = "نوعية الباركود";
|
||||
$lang["config_barcode_width"] = "العرض (px)";
|
||||
$lang["config_bottom"] = "الأسفل";
|
||||
$lang["config_cash_decimals"] = "فواصل النقدية";
|
||||
$lang["config_cash_decimals_tooltip"] = "إذا كانت الكسور العشرية النقدية وعشرية العملات هي نفسها ثم لن يتم تقريب النقدية.";
|
||||
$lang["config_cash_rounding"] = "التقريب النقدي";
|
||||
$lang["config_category_dropdown"] = "";
|
||||
$lang["config_center"] = "الوسط";
|
||||
$lang["config_comma"] = "فاصلة";
|
||||
$lang["config_company"] = "اسم الشركة";
|
||||
$lang["config_company_change_image"] = "تغيير الصورة";
|
||||
$lang["config_company_logo"] = "شعار الشركة";
|
||||
$lang["config_company_remove_image"] = "إزالة الصورة";
|
||||
$lang["config_company_required"] = "اسم الشركة مطلوب";
|
||||
$lang["config_company_select_image"] = "اختار صورة";
|
||||
$lang["config_company_website_url"] = "الموقع الإلكترونى للشركة غير صحيح.";
|
||||
$lang["config_country_codes"] = "أكواد الدولة";
|
||||
$lang["config_country_codes_tooltip"] = "قائمة مفصولة بفاصلة لاسماء الدول للبحث.";
|
||||
$lang["config_currency_code"] = "رمز العملة";
|
||||
$lang["config_currency_decimals"] = "العلامة العشرية للعملة";
|
||||
$lang["config_currency_symbol"] = "رمز العملة";
|
||||
$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_width_number"] = "العرض الافتراضي للباركود لابد ان يكون رقم.";
|
||||
$lang["config_default_barcode_width_required"] = "العرض الافتراضي للباركود مطلوب.";
|
||||
$lang["config_default_item_columns"] = "الخانات المراد إظهارها";
|
||||
$lang["config_default_origin_tax_code"] = "كود الضريبة الاساسي الافتراضي";
|
||||
$lang["config_default_receivings_discount"] = "خصم الإيصالات الافتراضي";
|
||||
$lang["config_default_receivings_discount_number"] = "خصم الإيصالات الافتراضي يجب ان يكون رقم.";
|
||||
$lang["config_default_receivings_discount_required"] = "خصم الإيصالات الافتراضي هي خانة اجبارية.";
|
||||
$lang["config_default_sales_discount"] = "نسبة الخصم الافتراضية";
|
||||
$lang["config_default_sales_discount_number"] = "نسبة الخصم الافتراضية لابد ان تكون رقم.";
|
||||
$lang["config_default_sales_discount_required"] = "نسبة الخصم الافتراضية مطلوبة.";
|
||||
$lang["config_default_tax_category"] = "فئة الضرائب الافتراضية";
|
||||
$lang["config_default_tax_code"] = "قانون الضرائب الافتراضي";
|
||||
$lang["config_default_tax_jurisdiction"] = "الاختصاص الضريبي الافتراضي";
|
||||
$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_derive_sale_quantity"] = "السماح بأسعار البيع المشتقة";
|
||||
$lang["config_derive_sale_quantity_tooltip"] = "إذا تم تحديدها، فسيتم توفير نوع جديد من الاصناف للاصناف المطلوبة حسب المبلغ الموسع";
|
||||
$lang["config_dinner_table"] = "طاولة";
|
||||
$lang["config_dinner_table_duplicate"] = "الطاولة يجب ان تكون فريدة.";
|
||||
$lang["config_dinner_table_enable"] = "تمكين جداول الطاولات";
|
||||
$lang["config_dinner_table_invalid_chars"] = "لا يمكن أن يحتوي اسم الطاولة على '_'.";
|
||||
$lang["config_dinner_table_required"] = "الطاولة هو حقل مطلوب.";
|
||||
$lang["config_dot"] = "نقطة";
|
||||
$lang["config_email"] = "البريد الإلكتروني";
|
||||
$lang["config_email_configuration"] = "إعدادات البريد الإلكتروني";
|
||||
$lang["config_email_mailpath"] = "مسار ارسال البريد";
|
||||
$lang["config_email_protocol"] = "بروتوكول";
|
||||
$lang["config_email_receipt_check_behaviour"] = "ارسال رسائل الكترونية";
|
||||
$lang["config_email_receipt_check_behaviour_always"] = "مختار دائما";
|
||||
$lang["config_email_receipt_check_behaviour_last"] = "تذكر آخر إختيار";
|
||||
$lang["config_email_receipt_check_behaviour_never"] = "دائما غير مختار";
|
||||
$lang["config_email_smtp_crypto"] = "تشفير SMTP";
|
||||
$lang["config_email_smtp_host"] = "خادم SMTP";
|
||||
$lang["config_email_smtp_pass"] = "كلمة سر SMTP";
|
||||
$lang["config_email_smtp_port"] = "رقم منفذ SMTP";
|
||||
$lang["config_email_smtp_timeout"] = "وقت فشل المحاولة (ثوانى) لـ SMTP";
|
||||
$lang["config_email_smtp_user"] = "اسم مستخدم SMTP";
|
||||
$lang["config_enforce_privacy"] = "فرض نظام الخصوصية";
|
||||
$lang["config_enforce_privacy_tooltip"] = "حماية ملفات ومعلومات المستخدم عند الحذف";
|
||||
$lang["config_fax"] = "الفاكس";
|
||||
$lang["config_file_perm"] = "There are problems with file permissions please fix and reload this page.";
|
||||
$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_image_allowed_file_types"] = "";
|
||||
$lang["config_image_max_height_tooltip"] = "";
|
||||
$lang["config_image_max_size_tooltip"] = "";
|
||||
$lang["config_image_max_width_tooltip"] = "";
|
||||
$lang["config_image_restrictions"] = "";
|
||||
$lang["config_include_hsn"] = "تشمل الدعم لرمز نظام منسق";
|
||||
$lang["config_info"] = "معلومات";
|
||||
$lang["config_info_configuration"] = "معلومات الشركة";
|
||||
$lang["config_integrations"] = "التكامل";
|
||||
$lang["config_integrations_configuration"] = "تكامل";
|
||||
$lang["config_invoice"] = "الفاتورة";
|
||||
$lang["config_invoice_configuration"] = "إعدادات طباعة الفاتورة";
|
||||
$lang["config_invoice_default_comments"] = "التعليق الافتراضي على الفاتورة";
|
||||
$lang["config_invoice_email_message"] = "قالب البريد الإلكتروني للفاتورة";
|
||||
$lang["config_invoice_enable"] = "تفعيل الفوترة";
|
||||
$lang["config_invoice_printer"] = "طابعة الفواتير";
|
||||
$lang["config_invoice_type"] = "نوع الفاتورة";
|
||||
$lang["config_is_readable"] = "";
|
||||
$lang["config_is_writable"] = "is writable, but the permissions are higher than 750.";
|
||||
$lang["config_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_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_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_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_multi_pack_enabled"] = "رزم متعددة لكل صنف";
|
||||
$lang["config_no_risk"] = "No security/vulnerability risks.";
|
||||
$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_os_timezone"] = "";
|
||||
$lang["config_ospos_info"] = "معلومات التثبيت OSPOS";
|
||||
$lang["config_payment_options_order"] = "ترتيب خيارات الدفع";
|
||||
$lang["config_perm_risk"] = "Permissions higher than 750 leaves this software at risk.";
|
||||
$lang["config_phone"] = "هاتف الشركة";
|
||||
$lang["config_phone_required"] = "هاتف الشركة مطلوب.";
|
||||
$lang["config_print_bottom_margin"] = "الهامش السفلي";
|
||||
$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_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_silently"] = "عرض صندوق حوار طباعة";
|
||||
$lang["config_print_top_margin"] = "الهامش العلوى";
|
||||
$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_short"] = "مختصر";
|
||||
$lang["config_receipt_show_company_name"] = "عرض اسم الشركة";
|
||||
$lang["config_receipt_show_description"] = "عرض الوصف";
|
||||
$lang["config_receipt_show_serialnumber"] = "عرض الرقم المسلسل";
|
||||
$lang["config_receipt_show_tax_ind"] = "";
|
||||
$lang["config_receipt_show_taxes"] = "عرض الضرائب";
|
||||
$lang["config_receipt_show_total_discount"] = "عرض إجمالى الخصم";
|
||||
$lang["config_receipt_template"] = "قالب الايصال";
|
||||
$lang["config_receiving_calculate_average_price"] = "حساب متوسط سعر الأصناف المستلمة";
|
||||
$lang["config_recv_invoice_format"] = "شكل فاتورة الإستلام";
|
||||
$lang["config_register_mode_default"] = "نمط التسجيل الافتراضي";
|
||||
$lang["config_report_an_issue"] = "";
|
||||
$lang["config_return_policy_required"] = "سياسة الإسترجاع مطلوب.";
|
||||
$lang["config_reward"] = "المكافاة";
|
||||
$lang["config_reward_configuration"] = "اعدادات المكافاة";
|
||||
$lang["config_right"] = "يمين";
|
||||
$lang["config_sales_invoice_format"] = "شكل فاتورة البيع";
|
||||
$lang["config_sales_quote_format"] = "شكل فاتورة عرض الاسعار";
|
||||
$lang["config_saved_successfully"] = "تم حفظ التهيئة بنجاح.";
|
||||
$lang["config_saved_unsuccessfully"] = "لم يتم حفظ التهيئة بنجاح.";
|
||||
$lang["config_security_issue"] = "Security Vulnerability Warning";
|
||||
$lang["config_server_notice"] = "يرجى استخدام المعلومات أدناه للإبلاغ عن المشكلة.";
|
||||
$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_suggestions_first_column"] = "العامود 1";
|
||||
$lang["config_suggestions_layout"] = "تخطيط اقتراحات البحث";
|
||||
$lang["config_suggestions_second_column"] = "العامود 2";
|
||||
$lang["config_suggestions_third_column"] = "العامود 3";
|
||||
$lang["config_system_conf"] = "Setup & Conf";
|
||||
$lang["config_system_info"] = "System Info";
|
||||
$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_id"] = "الرقم الضريبي";
|
||||
$lang["config_tax_included"] = "شامل الضريبة";
|
||||
$lang["config_theme"] = "السمة";
|
||||
$lang["config_thousands_separator"] = "فاصل الاف";
|
||||
$lang["config_timezone"] = "المنطقة الزمنية";
|
||||
$lang["config_timezone_error"] = "";
|
||||
$lang["config_top"] = "علوى";
|
||||
$lang["config_use_destination_based_tax"] = "استخدام الضريبة المستندة على الوجهة";
|
||||
$lang["config_user_timezone"] = "";
|
||||
$lang["config_website"] = "موقع الشركة";
|
||||
$lang["config_work_order_enable"] = "تفعيل طلبات العمل";
|
||||
$lang["config_work_order_format"] = "شكل طلبات العمل";
|
||||
54
application/language/ar-LB/customers_lang.php
Normal file
54
application/language/ar-LB/customers_lang.php
Normal file
@@ -0,0 +1,54 @@
|
||||
<?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_csv_import_failed"] = "فشل الإستيراد من اكسل";
|
||||
$lang["customers_csv_import_nodata_wrongformat"] = "الملف الذى رفعته إما فارغ أو أنه مختلف البنية.";
|
||||
$lang["customers_csv_import_partially_failed"] = "تم استيراد معظم العملاء. البعض لم يتم استيرادهم ، وهذه هى القائمة:";
|
||||
$lang["customers_csv_import_success"] = "تم استيراد العملاء بنجاح.";
|
||||
$lang["customers_customer"] = "العميل";
|
||||
$lang["customers_date"] = "التاريخ";
|
||||
$lang["customers_discount"] = "نسبة الخصم";
|
||||
$lang["customers_discount_fixed"] = "حسم ثابت";
|
||||
$lang["customers_discount_percent"] = "نسبة الحبم";
|
||||
$lang["customers_discount_type"] = "نوع الحسم";
|
||||
$lang["customers_email_duplicate"] = "البريد الالكتروني مكرر.";
|
||||
$lang["customers_employee"] = "الموظف";
|
||||
$lang["customers_error_adding_updating"] = "خطاء فى إضافة أو تحديث العميل.";
|
||||
$lang["customers_import_items_csv"] = "استيراد العملا ء من ورقة عمل اكسل";
|
||||
$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_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_tax_id"] = "الرقم الضريبي";
|
||||
$lang["customers_taxable"] = "خاضع للضريبة";
|
||||
$lang["customers_total"] = "المجموع";
|
||||
$lang["customers_update"] = "تحديث بيانات عميل";
|
||||
$lang["rewards_package"] = "فئة المكافئة";
|
||||
22
application/language/ar-LB/datepicker_lang.php
Normal file
22
application/language/ar-LB/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"] = "أخر 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"] = "أمس";
|
||||
37
application/language/ar-LB/employees_lang.php
Normal file
37
application/language/ar-LB/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"] = "لايمكن حذف المستخدم admin الخاص بنسخة العرض.";
|
||||
$lang["employees_error_updating_demo_admin"] = "لايمكن تغيير بيانات المستخدم admin الخاص بنسخة العرض.";
|
||||
$lang["employees_language"] = "اللغة";
|
||||
$lang["employees_login_info"] = "معلومات دخول الموظف";
|
||||
$lang["employees_new"] = "موظف جديد";
|
||||
$lang["employees_none_selected"] = "لم تختار أى من الموظفين للحذف.";
|
||||
$lang["employees_one_or_multiple"] = "موظف/موظفين";
|
||||
$lang["employees_password"] = "كلمة السر";
|
||||
$lang["employees_password_minlength"] = "كلمة السر يجب أن تكون 8 حروف على الأقل.";
|
||||
$lang["employees_password_must_match"] = "كلمتى السر لا تتطابقان.";
|
||||
$lang["employees_password_not_must_match"] = "كلمة المرور الحالية والجديدة يجب ان يكونو فريدين.";
|
||||
$lang["employees_password_required"] = "كلمة السر مطلوبة.";
|
||||
$lang["employees_permission_desc"] = "قم بإضافة الصلاحيات بلإختيار من الأسفل.";
|
||||
$lang["employees_permission_info"] = "اذونات المستخدمين";
|
||||
$lang["employees_repeat_password"] = "كلمة السر مرة اخرى";
|
||||
$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"] = "اسم المستخدم مطلوب.";
|
||||
9
application/language/ar-LB/enum_lang.php
Normal file
9
application/language/ar-LB/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"] = "التقريب";
|
||||
4
application/language/ar-LB/error_lang.php
Normal file
4
application/language/ar-LB/error_lang.php
Normal file
@@ -0,0 +1,4 @@
|
||||
<?php
|
||||
|
||||
$lang["error_no_permission_module"] = "ليس لديك صلاحيات للوصول لهذا القسم";
|
||||
$lang["error_unknown"] = "غير معروف";
|
||||
21
application/language/ar-LB/expenses_categories_lang.php
Normal file
21
application/language/ar-LB/expenses_categories_lang.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?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_confirm_restore"] = "هل أنت متأكد من أنك تريد استعادة فئة المصاريف المحددة؟";
|
||||
$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"] = "تعديل النوع";
|
||||
46
application/language/ar-LB/expenses_lang.php
Normal file
46
application/language/ar-LB/expenses_lang.php
Normal file
@@ -0,0 +1,46 @@
|
||||
<?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_start_typing_supplier_name"] = "ابدا بكتابة اسم المورد...";
|
||||
$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"] = "تعديل";
|
||||
70
application/language/ar-LB/giftcards_lang.php
Normal file
70
application/language/ar-LB/giftcards_lang.php
Normal file
@@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
$lang["giftcards_add_minus"] = "المخزن المضاف أو المطروح منه.";
|
||||
$lang["giftcards_allow_alt_description"] = "السماح بوصف بديل";
|
||||
$lang["giftcards_bulk_edit"] = "تحرير جماعى";
|
||||
$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_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_csv_import_failed"] = "فشل الإستيراد من اكسل.";
|
||||
$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_generate_barcodes"] = "توليد أكواد الباركود";
|
||||
$lang["giftcards_giftcard"] = "بطاقة هدية";
|
||||
$lang["giftcards_giftcard_number"] = "رقم بطاقة الهدية";
|
||||
$lang["giftcards_info_provided_by"] = "المعلومات مقدمة بواسطة";
|
||||
$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_new"] = "بطاقة هدية جديدة";
|
||||
$lang["giftcards_no_description_giftcards"] = "لايوجد وصف لبطاقات الهدايا";
|
||||
$lang["giftcards_no_giftcards_to_display"] = "لايوجد بطاقات هدايا لعرضها.";
|
||||
$lang["giftcards_none"] = "لايوجد";
|
||||
$lang["giftcards_none_selected"] = "لم تقم بإختيار أى بطاقة هدية.";
|
||||
$lang["giftcards_number"] = "رقم بطاقة الهدية يجب أن يكون رقم.";
|
||||
$lang["giftcards_number_information"] = "رقم بطاقة الهدية";
|
||||
$lang["giftcards_number_required"] = "رقم بطاقة الهدية مطلوب.";
|
||||
$lang["giftcards_one_or_multiple"] = "بطاقة/بطاقات الهدية";
|
||||
$lang["giftcards_person_id"] = "العميل";
|
||||
$lang["giftcards_quantity"] = "الكمية";
|
||||
$lang["giftcards_quantity_required"] = "الكمية مطلوبة.";
|
||||
$lang["giftcards_remaining_balance"] = "كارت الهدية %1 القيمة المتبقية منه %2!";
|
||||
$lang["giftcards_reorder_level"] = "نقطة إعادة الطلب";
|
||||
$lang["giftcards_retrive_giftcard_info"] = "إسترجاع بيانات بطاقة هدية";
|
||||
$lang["giftcards_sales_tax_1"] = "ضريبة المبيعات";
|
||||
$lang["giftcards_sales_tax_2"] = "ضريبة المبيعات 2";
|
||||
$lang["giftcards_serialized_giftcards"] = "بطاقات هدايا مسلسلة";
|
||||
$lang["giftcards_successful_adding"] = "تم إضافة بطاقة هدية بنجاح";
|
||||
$lang["giftcards_successful_bulk_edit"] = "تم تحديث بطاقات الهدايا بنجاح";
|
||||
$lang["giftcards_successful_deleted"] = "تم الحذف بنجاح";
|
||||
$lang["giftcards_successful_updating"] = "تم تحديث بطاقة الهدية بنجاح";
|
||||
$lang["giftcards_supplier"] = "المورد";
|
||||
$lang["giftcards_tax_1"] = "الضريبة 1";
|
||||
$lang["giftcards_tax_2"] = "الضريبة 2";
|
||||
$lang["giftcards_tax_percent"] = "نسبة الضريبة";
|
||||
$lang["giftcards_tax_percents"] = "نسبة/نسب الضريبة";
|
||||
$lang["giftcards_unit_price"] = "سعر الوحدة";
|
||||
$lang["giftcards_upc_database"] = "UPC قاعدة بيانات";
|
||||
$lang["giftcards_update"] = "تحديث بطاقة هدية";
|
||||
$lang["giftcards_use_inventory_menu"] = "استخدام تحديث المخزن";
|
||||
$lang["giftcards_value"] = "قيمة بطاقة الهدية يجب ان تكون رقم.";
|
||||
$lang["giftcards_value_required"] = "قيمة بطاقة الهدية مطلوبة.";
|
||||
20
application/language/zh/index.html → application/language/ar-LB/index.html
Executable file → Normal file
20
application/language/zh/index.html → application/language/ar-LB/index.html
Executable file → Normal file
@@ -1,11 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>403 Forbidden</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>Directory access is forbidden.</p>
|
||||
|
||||
</body>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>403 Forbidden</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>Directory access is forbidden.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
35
application/language/ar-LB/item_kits_lang.php
Normal file
35
application/language/ar-LB/item_kits_lang.php
Normal file
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
$lang["item_kits_add_item"] = "إضافة مجموعة";
|
||||
$lang["item_kits_all"] = "الكل";
|
||||
$lang["item_kits_cannot_be_deleted"] = "لايمكن حذف مجموعة/مجموعات.";
|
||||
$lang["item_kits_confirm_delete"] = "هل أنت متأكد أنك تريد حذف المجموعة؟";
|
||||
$lang["item_kits_confirm_restore"] = "هل أنت متأكد أنك تريد استعادة المجموعة المحددة؟";
|
||||
$lang["item_kits_description"] = "وصف المجموعة";
|
||||
$lang["item_kits_discount"] = "الخصم";
|
||||
$lang["item_kits_discount_fixed"] = "خصم قابل للتعديل";
|
||||
$lang["item_kits_discount_percent"] = "نسبة الخصم";
|
||||
$lang["item_kits_discount_type"] = "نوع الخصم";
|
||||
$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_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"] = "لقد تم تحديث بيانات المجموعة بنجاح";
|
||||
$lang["item_kits_update"] = "تحديث بيانات مجموعة";
|
||||
112
application/language/ar-LB/items_lang.php
Normal file
112
application/language/ar-LB/items_lang.php
Normal file
@@ -0,0 +1,112 @@
|
||||
<?php
|
||||
|
||||
$lang["items_add_minus"] = "الكمية المطلوب خصمها أو اضافتها.";
|
||||
$lang["items_allow_alt_description"] = "السماح بوصف بديل";
|
||||
$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_category"] = "التصنيف";
|
||||
$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_delete"] = "هل أنت متأكد انك تريد حذف كل الأصناف المختارة؟";
|
||||
$lang["items_confirm_restore"] = "هل انت متاكد من إستعادة الاصناف المخطارة؟";
|
||||
$lang["items_cost_price"] = "سعر التكلفة";
|
||||
$lang["items_cost_price_number"] = "سعر التكلفة يجب أن يكون رقم.";
|
||||
$lang["items_cost_price_required"] = "سعر التكلفة مطلوب.";
|
||||
$lang["items_count"] = "تحديث المخزون";
|
||||
$lang["items_csv_import_failed"] = "فشل الإستيراد من اكسل";
|
||||
$lang["items_csv_import_nodata_wrongformat"] = "الملف الذى رفعته إما فارغ أو أنه مختلف البنية.";
|
||||
$lang["items_csv_import_partially_failed"] = "تم استيراد معظم الأصناف. البعض لم يتم استيرادهم ، وهذه هى القائمة:";
|
||||
$lang["items_csv_import_success"] = "تم استيراد الأصناف بنجاح.";
|
||||
$lang["items_current_quantity"] = "الكمية الحالية";
|
||||
$lang["items_default_pack_name"] = "كل";
|
||||
$lang["items_description"] = "الوصف";
|
||||
$lang["items_details_count"] = "حركة الصنف";
|
||||
$lang["items_do_nothing"] = "لاتفعل شئ";
|
||||
$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_generate_barcodes"] = "توليد أكواد الباركود";
|
||||
$lang["items_hsn_code"] = "تسميات النظام المنسق";
|
||||
$lang["items_image"] = "صورة";
|
||||
$lang["items_import_items_csv"] = "استيراد من اكسل";
|
||||
$lang["items_info_provided_by"] = "المعلومات مقدمة بواسطة";
|
||||
$lang["items_inventory"] = "المخزن";
|
||||
$lang["items_inventory_CSV_import_quantity"] = "العدد المستورد من ملفات ال CSV";
|
||||
$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_kit"] = "مجموعة اصناف";
|
||||
$lang["items_location"] = "مكان";
|
||||
$lang["items_low_inventory_items"] = "الأصناف التى لا يوجد لها مخزون";
|
||||
$lang["items_low_sell_item"] = "الصنف المركب";
|
||||
$lang["items_manually_editing_of_quantity"] = "تحرير الكمية يدوياً";
|
||||
$lang["items_name"] = "اسم الصنف";
|
||||
$lang["items_name_required"] = "اسم الصنف مطلوب.";
|
||||
$lang["items_new"] = "صنف جديد";
|
||||
$lang["items_no_description_items"] = "الأصناف التى بلا وصف";
|
||||
$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_one_or_multiple"] = "صنف/أصناف";
|
||||
$lang["items_pack_name"] = "اسم الحزمة";
|
||||
$lang["items_qty_per_pack"] = "العدد بكل الحزمة";
|
||||
$lang["items_quantity"] = "الكمية";
|
||||
$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_retrive_item_info"] = "استرجاع بيانات الصنف";
|
||||
$lang["items_sales_tax_1"] = "ضريبة المبيعات";
|
||||
$lang["items_sales_tax_2"] = "ضريبة المبيعات 2";
|
||||
$lang["items_search_attributes"] = "بحث الحقول المخصصة";
|
||||
$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"] = "لقد تم الحذف بنجاح";
|
||||
$lang["items_successful_updating"] = "لقد تم تحديث بيانات صنف بنجاح";
|
||||
$lang["items_supplier"] = "المورد";
|
||||
$lang["items_tax_1"] = "الضريبة 1";
|
||||
$lang["items_tax_2"] = "الضريبة 2";
|
||||
$lang["items_tax_category"] = "الفئة الضريبية";
|
||||
$lang["items_tax_percent"] = "نسبة الضريبة";
|
||||
$lang["items_tax_percent_number"] = "نسبة الضريبة يجب ان تكون رقم";
|
||||
$lang["items_tax_percent_required"] = "نسبة الضريبة مطلوبة.";
|
||||
$lang["items_tax_percents"] = "نسبة/نسب الضريبة";
|
||||
$lang["items_temp"] = "مؤقت";
|
||||
$lang["items_type"] = "نوع الصنف";
|
||||
$lang["items_unit_price"] = "السعر";
|
||||
$lang["items_unit_price_number"] = "السعر يجب أن يكون رقم.";
|
||||
$lang["items_unit_price_required"] = "السعر مطلوب.";
|
||||
$lang["items_upc_database"] = "UPC قاعدة بيانات";
|
||||
$lang["items_update"] = "تحديث بيانات صنف";
|
||||
$lang["items_use_inventory_menu"] = "استخدام تحديث المخزن";
|
||||
10
application/language/ar-LB/login_lang.php
Normal file
10
application/language/ar-LB/login_lang.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
$lang["login_gcaptcha"] = "أنا لست بوت.";
|
||||
$lang["login_go"] = "البدء";
|
||||
$lang["login_invalid_gcaptcha"] = "رمز التحقق غير صحيح.";
|
||||
$lang["login_invalid_installation"] = "يوجد مشكلة بالتنصيب, الرجاء التحقق من ملف php.ini.";
|
||||
$lang["login_invalid_username_and_password"] = "اسم مستخدم/كلمة سر غير صحيح.";
|
||||
$lang["login_login"] = "دخول";
|
||||
$lang["login_password"] = "كلمة السر";
|
||||
$lang["login_username"] = "اسم المستخدم";
|
||||
14
application/language/ar-LB/messages_lang.php
Normal file
14
application/language/ar-LB/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"] = "إرسال SMS";
|
||||
$lang["messages_successfully_sent"] = "تم إرسال الرسالة بنجاح إلى: ";
|
||||
$lang["messages_unsuccessfully_sent"] = "لم يتم إرسال الرسالة بنجاح إلى: ";
|
||||
41
application/language/ar-LB/module_lang.php
Normal file
41
application/language/ar-LB/module_lang.php
Normal file
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
$lang["module_attributes"] = "ميزات/مميزات";
|
||||
$lang["module_attributes_desc"] = "إضافة، تعديل، حذف، وبحث بالميزات.";
|
||||
$lang["module_both"] = "الاثنين";
|
||||
$lang["module_cashups"] = "الصندوق النقدي";
|
||||
$lang["module_cashups_desc"] = "إضافة، تعديل، حذف، وبحث بالصندوق النقدي.";
|
||||
$lang["module_config"] = "إعدادات الشركة";
|
||||
$lang["module_config_desc"] = "تغيير إعدادات الشركة.";
|
||||
$lang["module_customers"] = "العملاء";
|
||||
$lang["module_customers_desc"] = "إضافة، تحديث ، بحث و حذف العملاء.";
|
||||
$lang["module_employees"] = "الموظفين";
|
||||
$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_home"] = "الرئيسية";
|
||||
$lang["module_home_desc"] = "اظهار الائحة الرئيسية.";
|
||||
$lang["module_item_kits"] = "مجموعات الأصناف";
|
||||
$lang["module_item_kits_desc"] = "إضافة، تحديث ، بحث و حذف مجموعات الأصناف.";
|
||||
$lang["module_items"] = "الأصناف";
|
||||
$lang["module_items_desc"] = "إضافة، تحديث ، بحث و حذف الأصناف.";
|
||||
$lang["module_messages"] = "الرسائل";
|
||||
$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"] = "اعدادات ضريبة المبيعات.";
|
||||
54
application/language/ar-LB/receivings_lang.php
Normal file
54
application/language/ar-LB/receivings_lang.php
Normal file
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
$lang["receivings_cancel_receiving"] = "إلغاء";
|
||||
$lang["receivings_cannot_be_deleted"] = "لايمكن حذف الإستلام/الإستلامات.";
|
||||
$lang["receivings_comments"] = "تعليقات";
|
||||
$lang["receivings_complete_receiving"] = "إنهاء";
|
||||
$lang["receivings_confirm_cancel_receiving"] = "هل أنت متاكد أنك تريد إلغاء هذا الإستلام؟ سيتم حذف كل الأصناف.";
|
||||
$lang["receivings_confirm_delete"] = "هل أنت متاكد أنك تريد حذف هذا الإستلام؟ سيتم حذف كل الأصناف. لايمكن التراجع بعد الحذف.";
|
||||
$lang["receivings_confirm_finish_receiving"] = "هل أنت متاكد أنك تريد تنفيذ هذا الإستلام؟ لايمكن التراجع بعد الإرسال.";
|
||||
$lang["receivings_cost"] = "التكلفة";
|
||||
$lang["receivings_date"] = "تاريخ الإستلام";
|
||||
$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_find_or_scan_item"] = "بحث/مسح باركود صنف";
|
||||
$lang["receivings_find_or_scan_item_or_receipt"] = "بحث/مسح باركود صنف أو إيصال";
|
||||
$lang["receivings_id"] = "كود الإستلام";
|
||||
$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_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_ship_pack"] = "حزمة توصيل";
|
||||
$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_address"] = "العنوان";
|
||||
$lang["receivings_supplier_email"] = "البريد الإلكتروني";
|
||||
$lang["receivings_supplier_location"] = "المكان";
|
||||
$lang["receivings_total"] = "الإجمالى";
|
||||
$lang["receivings_transaction_failed"] = "حركات الإستلام فشلت.";
|
||||
$lang["receivings_unable_to_add_item"] = "غير قادر على إضافة صنف للإستلام.";
|
||||
$lang["receivings_unsuccessfully_updated"] = "لم يتم تحديث الإستلام بنجاح.";
|
||||
$lang["receivings_update"] = "تحديث";
|
||||
141
application/language/ar-LB/reports_lang.php
Normal file
141
application/language/ar-LB/reports_lang.php
Normal file
@@ -0,0 +1,141 @@
|
||||
<?php
|
||||
|
||||
$lang["reports_all"] = "الكل";
|
||||
$lang["reports_authority"] = "السلطة";
|
||||
$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"] = "عملاء";
|
||||
$lang["reports_customers_summary_report"] = "تقرير ملخص العملاء";
|
||||
$lang["reports_date"] = "التاريخ";
|
||||
$lang["reports_date_range"] = "الفترة الزمنية";
|
||||
$lang["reports_description"] = "الوصف";
|
||||
$lang["reports_detailed_receivings_report"] = "تقرير مفصل لاستلام البضاعة";
|
||||
$lang["reports_detailed_reports"] = "التقارير التفصيلية";
|
||||
$lang["reports_detailed_requisition_report"] = "تقرير مفصل لطلبات الشراء";
|
||||
$lang["reports_detailed_sales_report"] = "تقرير مفصل للمبيعات";
|
||||
$lang["reports_discount"] = "الخصم";
|
||||
$lang["reports_discount_fixed"] = "حسم ثابت";
|
||||
$lang["reports_discount_percent"] = "نسبة الخصم";
|
||||
$lang["reports_discount_type"] = "نوع الحسم";
|
||||
$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"] = "نواقص المخزون";
|
||||
$lang["reports_inventory_low_report"] = "تقرير نواقص المخزون";
|
||||
$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_items"] = "الأصناف";
|
||||
$lang["reports_items_purchased"] = "الأصناف مشتراه";
|
||||
$lang["reports_items_received"] = "الأصناف مستلمة";
|
||||
$lang["reports_items_summary_report"] = "تقرير ملخص الأصناف";
|
||||
$lang["reports_jurisdiction"] = "الاختصاص القضائي";
|
||||
$lang["reports_low_inventory"] = "النواقص";
|
||||
$lang["reports_low_inventory_report"] = "تقرير نواقص المخزون";
|
||||
$lang["reports_low_sell_quantity"] = "كميات حسب الصنف الاولي";
|
||||
$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_quantity"] = "الكمية المشتراه";
|
||||
$lang["reports_quantity_purchased"] = "المستلم";
|
||||
$lang["reports_quotes"] = "عروض اسعار";
|
||||
$lang["reports_received_by"] = "مستلمة بواسطة";
|
||||
$lang["reports_receiving_id"] = "كود الاستلام";
|
||||
$lang["reports_receiving_type"] = "نوع الاستلام";
|
||||
$lang["reports_receivings"] = "استلام البضاعة";
|
||||
$lang["reports_reorder_level"] = "نقطة اعادة الطلب";
|
||||
$lang["reports_report"] = "تقرير";
|
||||
$lang["reports_report_input"] = "مدخلات التقرير";
|
||||
$lang["reports_reports"] = "تقارير";
|
||||
$lang["reports_requisition"] = "طلب الشراء";
|
||||
$lang["reports_requisition_by"] = "القائم بطلب الشراء";
|
||||
$lang["reports_requisition_id"] = "كود طلب الشراء";
|
||||
$lang["reports_requisition_item"] = "الصنف";
|
||||
$lang["reports_requisition_item_quantity"] = "الكمية المطلوبة";
|
||||
$lang["reports_requisition_related_item"] = "الصنف";
|
||||
$lang["reports_requisition_related_item_total_quantity"] = "إجمالى الكمية";
|
||||
$lang["reports_requisition_related_item_unit_quantity"] = "الكمية";
|
||||
$lang["reports_requisitions"] = "طلبات الشراء";
|
||||
$lang["reports_returns"] = "المرتجعات";
|
||||
$lang["reports_revenue"] = "العائد";
|
||||
$lang["reports_sale_id"] = "كود عملية البيع";
|
||||
$lang["reports_sale_type"] = "طريقة البيع";
|
||||
$lang["reports_sales"] = "بيع";
|
||||
$lang["reports_sales_amount"] = "كمية المبيعات";
|
||||
$lang["reports_sales_summary_report"] = "تقرير ملخص المبيعات";
|
||||
$lang["reports_sales_taxes"] = "ضرائب المبيعات";
|
||||
$lang["reports_sales_taxes_summary_report"] = "تقرير ملخص ضرائب المبيعات";
|
||||
$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"] = "مورده بواسطة";
|
||||
$lang["reports_supplier"] = "المورد";
|
||||
$lang["reports_suppliers"] = "الموردين";
|
||||
$lang["reports_suppliers_summary_report"] = "تقرير ملخص الموردين";
|
||||
$lang["reports_tax"] = "الضريبة";
|
||||
$lang["reports_tax_category"] = "الفئة الضريبية";
|
||||
$lang["reports_tax_percent"] = "نسبة الضريبة";
|
||||
$lang["reports_tax_rate"] = "معدل الضريبة";
|
||||
$lang["reports_taxes"] = "الضرائب";
|
||||
$lang["reports_taxes_summary_report"] = "تقرير ملخص الضرائب";
|
||||
$lang["reports_total"] = "الإجمالى";
|
||||
$lang["reports_total_inventory_value"] = "إجمالى قيمة المخزن";
|
||||
$lang["reports_total_low_sell_quantity"] = "مجموع الكميات حسب الصنف الاولي";
|
||||
$lang["reports_total_quantity"] = "الكمية/العدد";
|
||||
$lang["reports_total_retail"] = "قيمة المبيع";
|
||||
$lang["reports_trans_amount"] = "قيمة العملية التجارية";
|
||||
$lang["reports_trans_due"] = "مستحق";
|
||||
$lang["reports_trans_group"] = "مجموعة العمليات التجارية";
|
||||
$lang["reports_trans_nopay_sales"] = "المبيعات الغير مسدده";
|
||||
$lang["reports_trans_payments"] = "المدفوعات";
|
||||
$lang["reports_trans_refunded"] = "المرتجع";
|
||||
$lang["reports_trans_sales"] = "المبيعات";
|
||||
$lang["reports_trans_type"] = "نوع العملية التجارية";
|
||||
$lang["reports_type"] = "النوع";
|
||||
$lang["reports_unit_price"] = "السعر";
|
||||
$lang["reports_used"] = "النقاط المستخدمة";
|
||||
$lang["reports_work_orders"] = "طلبات عمل";
|
||||
$lang["reports_zero_and_less"] = "صفر و أقل";
|
||||
181
application/language/ar-LB/sales_lang.php
Normal file
181
application/language/ar-LB/sales_lang.php
Normal file
@@ -0,0 +1,181 @@
|
||||
<?php
|
||||
|
||||
$lang["customers_available_points"] = "النقاط المتاحة";
|
||||
$lang["rewards_package"] = "مكافآت";
|
||||
$lang["rewards_remaining_balance"] = "رصيد النقاط المتبقي هو ";
|
||||
$lang["sales_account_number"] = "حساب";
|
||||
$lang["sales_add_payment"] = "إضافة دفع";
|
||||
$lang["sales_amount_due"] = "المبلغ المطلوب";
|
||||
$lang["sales_amount_tendered"] = "المبلغ المدفوع";
|
||||
$lang["sales_authorized_signature"] = "توقيع معتمد";
|
||||
$lang["sales_cancel_sale"] = "الغاء عملية البيع";
|
||||
$lang["sales_cash"] = "نقدى";
|
||||
$lang["sales_cash_deposit"] = "ايداع نقدي";
|
||||
$lang["sales_cash_filter"] = "نقدى";
|
||||
$lang["sales_change_due"] = "الباقى";
|
||||
$lang["sales_change_price"] = "";
|
||||
$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_delete"] = "هل تريد حذف عمليات البيع المختارة؟";
|
||||
$lang["sales_confirm_restore"] = "هل انت متاكد من استعادة عملية البيع؟";
|
||||
$lang["sales_credit"] = "بطاقة إئتمانية";
|
||||
$lang["sales_credit_deposit"] = "ايداع ببطاقة ائتمان";
|
||||
$lang["sales_credit_filter"] = "";
|
||||
$lang["sales_customer"] = "العميل";
|
||||
$lang["sales_customer_address"] = "العنوان";
|
||||
$lang["sales_customer_discount"] = "الخصم";
|
||||
$lang["sales_customer_email"] = "البريد الإلكترونى";
|
||||
$lang["sales_customer_location"] = "المكان";
|
||||
$lang["sales_customer_mailchimp_status"] = "حالة ميل تشيمب";
|
||||
$lang["sales_customer_optional"] = "(مطلوب للدفعات المستحقة)";
|
||||
$lang["sales_customer_required"] = "(اجباري)";
|
||||
$lang["sales_customer_total"] = "المجموع";
|
||||
$lang["sales_date"] = "تاريخ البيع";
|
||||
$lang["sales_date_range"] = "الفترة الزمنية";
|
||||
$lang["sales_date_required"] = "يجب إدخال تاريخ صحيح.";
|
||||
$lang["sales_date_type"] = "التاريخ مطلوب.";
|
||||
$lang["sales_debit"] = "بطاقة خصم";
|
||||
$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_discard"] = "الغاء";
|
||||
$lang["sales_discard_quote"] = "";
|
||||
$lang["sales_discount"] = "خصم";
|
||||
$lang["sales_discount_included"] = "% خصم";
|
||||
$lang["sales_discount_short"] = "%";
|
||||
$lang["sales_due"] = "مستحق";
|
||||
$lang["sales_due_filter"] = "مستحق";
|
||||
$lang["sales_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_hsn"] = "رمز نظام منسق";
|
||||
$lang["sales_id"] = "كود عملية البيع";
|
||||
$lang["sales_include_prices"] = "يشمل الاسعار؟";
|
||||
$lang["sales_invoice"] = "فاتورة";
|
||||
$lang["sales_invoice_confirm"] = "هذه الفاتورة سوف ترسل إلى";
|
||||
$lang["sales_invoice_enable"] = "إنشاء فاتورة";
|
||||
$lang["sales_invoice_filter"] = "الفواتير";
|
||||
$lang["sales_invoice_no_email"] = "هذا العميل ليس لدية بريد الكترونى صالح.";
|
||||
$lang["sales_invoice_number"] = "فاتورة رقم #";
|
||||
$lang["sales_invoice_number_duplicate"] = "من فضلك أدخل رقم فاتورة غير مكرر.";
|
||||
$lang["sales_invoice_sent"] = "تم إرسال الفاتورة إلى";
|
||||
$lang["sales_invoice_total"] = "إجمالي الفاتورة";
|
||||
$lang["sales_invoice_type_custom_invoice"] = "فاتورة مخصصة (custom_invoice.php)";
|
||||
$lang["sales_invoice_type_custom_tax_invoice"] = "الفاتورة الضريبية المخصصة (custom_tax_invoice.php)";
|
||||
$lang["sales_invoice_type_invoice"] = "الفاتورة (invoice.php)";
|
||||
$lang["sales_invoice_type_tax_invoice"] = "الفاتورة الضريبية (tax_invoice.php)";
|
||||
$lang["sales_invoice_unsent"] = "فشل إرسال الفاتورة إلى";
|
||||
$lang["sales_invoice_update"] = "إعادة العد";
|
||||
$lang["sales_item_insufficient_of_stock"] = "لايوجد مخزون كافى من الصنف.";
|
||||
$lang["sales_item_name"] = "اسم الصنف";
|
||||
$lang["sales_item_number"] = "صنف #";
|
||||
$lang["sales_item_out_of_stock"] = "لايوجد مخزون من الصنف.";
|
||||
$lang["sales_mode"] = "وضع التسجيل";
|
||||
$lang["sales_must_enter_numeric"] = "يجب إدخال رقم للمبلغ الفعلى المدفوع.";
|
||||
$lang["sales_must_enter_numeric_giftcard"] = "رقم بطاقة الهدية يجب أن يكون رقم.";
|
||||
$lang["sales_new_customer"] = "عميل جديد";
|
||||
$lang["sales_new_item"] = "صنف جديد";
|
||||
$lang["sales_no_description"] = "بدون وصف";
|
||||
$lang["sales_no_filter"] = "الكل";
|
||||
$lang["sales_no_items_in_cart"] = "لايوجد أصناف فى السلة.";
|
||||
$lang["sales_no_sales_to_display"] = "لاتوجد عمليات بيع لعرضها.";
|
||||
$lang["sales_none_selected"] = "لم تقم بإختيار أى عمليات بيع لحذفها.";
|
||||
$lang["sales_nontaxed_ind"] = "";
|
||||
$lang["sales_not_authorized"] = "هذه العملية لا يمكن فعلها لعدم تخويلك.";
|
||||
$lang["sales_one_or_multiple"] = "عمليات بيع";
|
||||
$lang["sales_payment"] = "طريقة الدفع";
|
||||
$lang["sales_payment_amount"] = "المبلغ";
|
||||
$lang["sales_payment_not_cover_total"] = "المبلغ المدفوع لايغطى المبلغ الإجمالى.";
|
||||
$lang["sales_payment_type"] = "طريقة";
|
||||
$lang["sales_payments_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_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_refund"] = "";
|
||||
$lang["sales_register"] = "مسجل المبيعات";
|
||||
$lang["sales_remove_customer"] = "حذف عميل";
|
||||
$lang["sales_return"] = "إرتجاع";
|
||||
$lang["sales_rewards"] = "نقاط المكافئة";
|
||||
$lang["sales_rewards_balance"] = "رصيد نقاط المكافئة";
|
||||
$lang["sales_sale"] = "بيع";
|
||||
$lang["sales_sale_by_invoice"] = "البيع بفاتورة رسمية";
|
||||
$lang["sales_sale_for_customer"] = "العميل:";
|
||||
$lang["sales_sale_time"] = "الوقت";
|
||||
$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_stock"] = "المخزن";
|
||||
$lang["sales_stock_location"] = "مكان المخزون";
|
||||
$lang["sales_sub_total"] = "المجموع الفرعي";
|
||||
$lang["sales_successfully_deleted"] = "لقد تم الحذف بنجاح";
|
||||
$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_id"] = "الرقم الضريبي";
|
||||
$lang["sales_tax_invoice"] = "فاتورة ضريبية";
|
||||
$lang["sales_tax_percent"] = "ضريبة %";
|
||||
$lang["sales_taxed_ind"] = "";
|
||||
$lang["sales_total"] = "المجموع";
|
||||
$lang["sales_total_tax_exclusive"] = "الإجمالى بدون الضرائب";
|
||||
$lang["sales_transaction_failed"] = "فشل حركة البيع.";
|
||||
$lang["sales_unable_to_add_item"] = "غير قادر على إضافة صنف لعملية البيع";
|
||||
$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_upi"] = "رقم التعريف الشخصي";
|
||||
$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"] = "فشل في ارسال طلب العمل الى";
|
||||
23
application/language/ar-LB/suppliers_lang.php
Normal file
23
application/language/ar-LB/suppliers_lang.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
$lang["suppliers_account_number"] = "رقم الحساب";
|
||||
$lang["suppliers_agency_name"] = "اسم الوكالة";
|
||||
$lang["suppliers_cannot_be_deleted"] = "لايمكن حذف المورد/الموردين لوجود مبيعات مرتبطة بهم.";
|
||||
$lang["suppliers_category"] = "الفئة";
|
||||
$lang["suppliers_company_name"] = "اسم الشركة";
|
||||
$lang["suppliers_company_name_required"] = "اسم الشركة مطلوب.";
|
||||
$lang["suppliers_confirm_delete"] = "هل تريد حقا حذف هؤلاء الموردين؟";
|
||||
$lang["suppliers_confirm_restore"] = "هل تريد بالتأكيد استعادة المورد (الموردين) المحددين؟";
|
||||
$lang["suppliers_cost"] = "مورد كلفة";
|
||||
$lang["suppliers_error_adding_updating"] = "خطاء فى إضافة/تحديث المورد.";
|
||||
$lang["suppliers_goods"] = "مورد بضائع";
|
||||
$lang["suppliers_new"] = "مورد جديد";
|
||||
$lang["suppliers_none_selected"] = "لم تختار موردين لحذفهم.";
|
||||
$lang["suppliers_one_or_multiple"] = "مورد/موردين";
|
||||
$lang["suppliers_successful_adding"] = "لقد تم إضافة المورد بنجاح";
|
||||
$lang["suppliers_successful_deleted"] = "لقد تم حذف المورد بنجاح";
|
||||
$lang["suppliers_successful_updating"] = "لقد تم تحديث بيانات المورد بنجاح";
|
||||
$lang["suppliers_supplier"] = "مورد";
|
||||
$lang["suppliers_supplier_id"] = "كود المورد";
|
||||
$lang["suppliers_tax_id"] = "الرقم الضريبي";
|
||||
$lang["suppliers_update"] = "تحديث بيانات المورد";
|
||||
80
application/language/ar-LB/taxes_lang.php
Normal file
80
application/language/ar-LB/taxes_lang.php
Normal file
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
|
||||
$lang["taxes_add_exception"] = "أضافة أستثناء";
|
||||
$lang["taxes_cascade"] = "تتالي";
|
||||
$lang["taxes_cascade_sequence"] = "تسلسل متتالي";
|
||||
$lang["taxes_city"] = "مدينة";
|
||||
$lang["taxes_code"] = "الشفرة";
|
||||
$lang["taxes_confirm_delete"] = "هل أنت متأكد أنك تريد حذف قانون الضرائب؟ لا يمكن التراجع عن هذا الإجراء";
|
||||
$lang["taxes_confirm_restore"] = "هل أنت متأكد من أستعادة الأكواد الضريبية؟";
|
||||
$lang["taxes_default_tax_category"] = "التصنيف الضريبي الأفتراضي";
|
||||
$lang["taxes_default_tax_rate"] = "معدل الضريبة الافتراضي";
|
||||
$lang["taxes_error_adding_updating"] = "فشل إضافة أو تحديث قانون الضرائب";
|
||||
$lang["taxes_group_seq"] = "تسلسل المجموعة";
|
||||
$lang["taxes_jurisdiction_name"] = "اسم الولاية القضائية";
|
||||
$lang["taxes_name"] = "الاسم";
|
||||
$lang["taxes_new"] = "ضريبة جديدة";
|
||||
$lang["taxes_no_taxes_to_display"] = "لا يوجد أكواد ضريبية للعرض";
|
||||
$lang["taxes_reporting_authority"] = "السلطة الضريبية";
|
||||
$lang["taxes_round_half_down"] = "نصف الاسفل";
|
||||
$lang["taxes_round_half_even"] = "تقريب للنصف";
|
||||
$lang["taxes_round_half_odd"] = "تقريب غريب";
|
||||
$lang["taxes_round_half_up"] = "تقريب للاعلى";
|
||||
$lang["taxes_rounding_code"] = "كود التقريب";
|
||||
$lang["taxes_sales_tax"] = "ضريبة المبيعات";
|
||||
$lang["taxes_sales_tax_by_invoice"] = "ضريبة المبيعات بالفاتورة";
|
||||
$lang["taxes_sequence"] = "تسلسل";
|
||||
$lang["taxes_state"] = "حالة";
|
||||
$lang["taxes_successful_deleted"] = "تم المسح بنجاح";
|
||||
$lang["taxes_tax_categories"] = "فئات الضرائب";
|
||||
$lang["taxes_tax_categories_configuration"] = "اعدادات فئات الضرائب";
|
||||
$lang["taxes_tax_categories_saved_successfully"] = "تم حفظ تغييرات الفئات الضريبية";
|
||||
$lang["taxes_tax_categories_saved_unsuccessfully"] = "لم يتم حفظ تغييرات الفئات الضريبة";
|
||||
$lang["taxes_tax_category"] = "الفئة الضريبية";
|
||||
$lang["taxes_tax_category_code"] = "رمز الفئة الضريبية";
|
||||
$lang["taxes_tax_category_duplicate"] = "الفئة الضريبية مكررة";
|
||||
$lang["taxes_tax_category_invalid_chars"] = "أحرف غير صالحة في اسم الفئة الضريبية";
|
||||
$lang["taxes_tax_category_name"] = "اسم فئة الضريبة";
|
||||
$lang["taxes_tax_category_new"] = "فئة الضريبية جديدة";
|
||||
$lang["taxes_tax_category_required"] = "الفئة الضريبة مطلوبة";
|
||||
$lang["taxes_tax_code"] = "كود الضريبة";
|
||||
$lang["taxes_tax_code_cannot_be_deleted"] = "فشل مسح الكود الضريبي";
|
||||
$lang["taxes_tax_code_duplicate"] = "رمز الضريبة مكرر";
|
||||
$lang["taxes_tax_code_invalid_chars"] = "أحرف لا يمكن استعمالها في قانون الضرائب";
|
||||
$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_codes"] = "الرموز الضريبية";
|
||||
$lang["taxes_tax_codes_configuration"] = "اعدادات الرموز الضريبية";
|
||||
$lang["taxes_tax_codes_saved_successfully"] = "تم حفظ تغييرات قانون الضرائب";
|
||||
$lang["taxes_tax_codes_saved_unsuccessfully"] = "لم يتم حفظ تغييرات قانون الضريبة";
|
||||
$lang["taxes_tax_excluded"] = "لا تشمل الضرائب";
|
||||
$lang["taxes_tax_group"] = "المجموعة الضريبية";
|
||||
$lang["taxes_tax_group_not_unique"] = "";
|
||||
$lang["taxes_tax_group_sequence"] = "تسلسل مجموعة الضرائب";
|
||||
$lang["taxes_tax_included"] = "الضريبة مشمولة";
|
||||
$lang["taxes_tax_jurisdiction"] = "الاختصاص الضريبي";
|
||||
$lang["taxes_tax_jurisdiction_duplicate"] = "تكرير الاختصاص الضريبي";
|
||||
$lang["taxes_tax_jurisdiction_invalid_chars"] = "أحرف لا يمكن استعمالها في اسم الولاية القضائية";
|
||||
$lang["taxes_tax_jurisdiction_required"] = "الاختصاص الضريبي هي خانة اجبارية";
|
||||
$lang["taxes_tax_jurisdictions"] = "الاختصاصات الضريبية";
|
||||
$lang["taxes_tax_jurisdictions_configuration"] = "اعجدادات الاختصاصات الضريبية";
|
||||
$lang["taxes_tax_jurisdictions_saved_successfully"] = "تم حفظ تغييرات الاختصاص الضريبي";
|
||||
$lang["taxes_tax_jurisdictions_saved_unsuccessfully"] = "لم يتم حفظ تغييرات الاختصاص الضريبي";
|
||||
$lang["taxes_tax_rate"] = "معدل الضريبة الافتراضي %";
|
||||
$lang["taxes_tax_rate_configuration"] = "اعجدادات معدل الضريبة";
|
||||
$lang["taxes_tax_rate_error_adding_updating"] = "فشل إضافة أو تحديث معدل الضريبة";
|
||||
$lang["taxes_tax_rate_numeric"] = "معدل الضريبة الافتراضي يجب أن يكون رقم";
|
||||
$lang["taxes_tax_rate_required"] = "معدل الضريبة الافتراضي مطلوب";
|
||||
$lang["taxes_tax_rate_successful_updated"] = "لقد تم بالتحديث بنجاح";
|
||||
$lang["taxes_tax_rate_successfully_added"] = "لقد تم الاضافة بنجاح";
|
||||
$lang["taxes_tax_rates"] = "معدلات الضريبة";
|
||||
$lang["taxes_tax_rates_configuration"] = "اعدادات معدلات الضريبة";
|
||||
$lang["taxes_tax_rounding"] = "التقريب الضريبي";
|
||||
$lang["taxes_tax_type"] = "نوع الضريبة";
|
||||
$lang["taxes_update"] = "تحديث معدل الضريبة";
|
||||
$lang["taxes_vat_tax"] = "ضريبة القيمة المضافة";
|
||||
31
application/language/az-AZ/attributes_lang.php
Normal file
31
application/language/az-AZ/attributes_lang.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
$lang["attributes_attribute_value_invalid_chars"] = "Atribut dəyəri bu ':' və ya '|' olmaz";
|
||||
$lang["attributes_confirm_delete"] = "Seçilmiş Atributları silmək istədiyinizdən əminsinizmi?";
|
||||
$lang["attributes_confirm_restore"] = "Seçilmiş atributları bərpa etmək istədiyinizə əminsinizmi?";
|
||||
$lang["attributes_definition_cannot_be_deleted"] = "Seçilmiş xüsusiyyətləri silmək olmadı";
|
||||
$lang["attributes_definition_error_adding_updating"] = "%1 -in atributları əlavə oluna və yenilənə bilmədi. Lütfən XƏTA loq faylını yoxlayın.";
|
||||
$lang["attributes_definition_flags"] = "Atribut görünüşü";
|
||||
$lang["attributes_definition_group"] = "Qrup";
|
||||
$lang["attributes_definition_id"] = "Id";
|
||||
$lang["attributes_definition_name"] = "Atribut əlavə et";
|
||||
$lang["attributes_definition_name_required"] = "Atribut adı zəruri bir sahədir";
|
||||
$lang["attributes_definition_one_or_multiple"] = "atribut (lar)";
|
||||
$lang["attributes_definition_successful_adding"] = "Malı uğurla əlavə etdiniz";
|
||||
$lang["attributes_definition_successful_deleted"] = "Siz uğurla sildiniz";
|
||||
$lang["attributes_definition_successful_updating"] = "Atributunuzu müvəffəqiyyətlə yenilədiniz";
|
||||
$lang["attributes_definition_type"] = "Atribut Tipi";
|
||||
$lang["attributes_definition_type_required"] = "Atribut növü tələb olunan sahədir";
|
||||
$lang["attributes_definition_unit"] = "Ölçü vahidi";
|
||||
$lang["attributes_definition_values"] = "Atribut dəyərləri";
|
||||
$lang["attributes_new"] = "Yeni atributlar";
|
||||
$lang["attributes_no_attributes_to_display"] = "Göstərmək üçün heç bir element yoxdur";
|
||||
$lang["attributes_receipt_visibility"] = "Qəbz";
|
||||
$lang["attributes_show_in_items"] = "Malları göstər";
|
||||
$lang["attributes_show_in_items_visibility"] = "Mallar";
|
||||
$lang["attributes_show_in_receipt"] = "Qəbzi göstərin";
|
||||
$lang["attributes_show_in_receivings"] = "Alacaqlarda göstərin";
|
||||
$lang["attributes_show_in_receivings_visibility"] = "Alınanlar";
|
||||
$lang["attributes_show_in_sales"] = "Satışda göstərin";
|
||||
$lang["attributes_show_in_sales_visibility"] = "Satışlar";
|
||||
$lang["attributes_update"] = "Atributları yenilə";
|
||||
@@ -1,10 +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"] = "";
|
||||
$lang["tables_all"] = "hamısı";
|
||||
$lang["tables_columns"] = "Sütunlar";
|
||||
$lang["tables_hide_show_pagination"] = "Gizlət/Göstər səhifənin nömrələnməsin";
|
||||
$lang["tables_loading"] = "Lütfən gözləyin, səhifə yüklənir...";
|
||||
$lang["tables_page_from_to"] = "Göstər {0} bundan {1} buna {2} kimi";
|
||||
$lang["tables_refresh"] = "Yenilə";
|
||||
$lang["tables_rows_per_page"] = "{0} yazı səhifədə";
|
||||
$lang["tables_toggle"] = "Keçid";
|
||||
|
||||
38
application/language/az-AZ/cashups_lang.php
Normal file
38
application/language/az-AZ/cashups_lang.php
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
$lang["cashups_amount"] = "Məbləğ";
|
||||
$lang["cashups_amount_number"] = "Məbləğ rəqəmlə olmalıdır";
|
||||
$lang["cashups_amount_required"] = "Məbləğ zəruri sahədir.";
|
||||
$lang["cashups_cannot_be_deleted"] = "Pul vahidi silinməsi mümkün deyil";
|
||||
$lang["cashups_close_date"] = "Bağlanma Tarixi";
|
||||
$lang["cashups_close_employee"] = "Bağlıdır";
|
||||
$lang["cashups_closed_amount_card"] = "Kartlar";
|
||||
$lang["cashups_closed_amount_cash"] = "Kassanın Bağlanması";
|
||||
$lang["cashups_closed_amount_check"] = "Çeklər";
|
||||
$lang["cashups_closed_amount_due"] = "Rüsum";
|
||||
$lang["cashups_closed_amount_total"] = "Cəmi";
|
||||
$lang["cashups_closed_date"] = "Bağlanma tarixi";
|
||||
$lang["cashups_confirm_delete"] = "Seçilmiş Pul vahidi silmək istədiyinizə əminsinizmi?";
|
||||
$lang["cashups_confirm_restore"] = "Seçilmiş Pul vahidi bərpa etmək istədiyinizə əminsinizmi?";
|
||||
$lang["cashups_date_number"] = "Tarix rəqəmlə olmalıdır";
|
||||
$lang["cashups_date_required"] = "Tarixi tələb olunan bir sahədir";
|
||||
$lang["cashups_description"] = "Təsvir";
|
||||
$lang["cashups_error_adding_updating"] = "XƏTA Pul vahidi Əvavə/yenilənmədə";
|
||||
$lang["cashups_id"] = "İD";
|
||||
$lang["cashups_info"] = "Pul vahidi məlumatı";
|
||||
$lang["cashups_is_deleted"] = "Silindi";
|
||||
$lang["cashups_new"] = "Yeni Pul vahidi";
|
||||
$lang["cashups_no_cashups_to_display"] = "Göstərmək üçün heç nağd pul yoxdur";
|
||||
$lang["cashups_none_selected"] = "Siz pul seçmədiniz";
|
||||
$lang["cashups_note"] = "Qeydlər";
|
||||
$lang["cashups_one_or_multiple"] = "Pul Vahidləri";
|
||||
$lang["cashups_open_amount_cash"] = "Kassanı aç";
|
||||
$lang["cashups_open_date"] = "Tarixi aç";
|
||||
$lang["cashups_open_employee"] = "Açıqdır";
|
||||
$lang["cashups_opened_date"] = "Açılma Tarixi";
|
||||
$lang["cashups_successful_adding"] = "Pul vahidi əlavə edildi";
|
||||
$lang["cashups_successful_deleted"] = "Pul vahidi silindi";
|
||||
$lang["cashups_successful_updating"] = "Pul vahidi yeniləndi";
|
||||
$lang["cashups_total"] = "Cəmi";
|
||||
$lang["cashups_transfer_amount_cash"] = "Pul vahidi Giriş/Çıxışları";
|
||||
$lang["cashups_update"] = "Pul vahidi Yeniləndi";
|
||||
@@ -1,68 +1,71 @@
|
||||
<?php
|
||||
|
||||
$lang["common_address_1"] = "Ünvan 1 ";
|
||||
$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_copyrights"] = "© 2010 - %1";
|
||||
$lang["common_correct_errors"] = "Xahiş edirik təsdiqlə-dən əvvəl səhvləri düzəldin";
|
||||
$lang["common_country"] = "Ölkə";
|
||||
$lang["common_date"] = "Təqvim";
|
||||
$lang["common_delete"] = "Sil";
|
||||
$lang["common_det"] = "detallar";
|
||||
$lang["common_download_import_template"] = "İdxal Excel Şablonunu Yüklə";
|
||||
$lang["common_download_import_template"] = "CSV Şablonunu (CSV) daxil edin";
|
||||
$lang["common_edit"] = "Redaktə Et";
|
||||
$lang["common_email"] = "elektron adres";
|
||||
$lang["common_email"] = "E-poçt";
|
||||
$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_export_csv"] = "CSV Export";
|
||||
$lang["common_export_csv_no"] = "Xeyr";
|
||||
$lang["common_export_csv_yes"] = "Bəli";
|
||||
$lang["common_fields_required_message"] = "Qırmızı sahələr tələb olunur";
|
||||
$lang["common_first_name"] = "Ad";
|
||||
$lang["common_first_name_required"] = "Ad yazmağınız tələb olunur";
|
||||
$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_gender_female"] = "Q";
|
||||
$lang["common_gender_male"] = "K";
|
||||
$lang["common_id"] = "ID";
|
||||
$lang["common_import"] = "Daxil et";
|
||||
$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_csv"] = "CSV daxil et";
|
||||
$lang["common_import_full_path"] = "CSV faylına tam yol tələb olunur";
|
||||
$lang["common_import_remove_file"] = "Sil(Gizlət)";
|
||||
$lang["common_import_select_file"] = "Fayl Seç";
|
||||
$lang["common_inv"] = "familiya və mütləq məsafə ";
|
||||
$lang["common_inv"] = "Qaimə";
|
||||
$lang["common_last_name"] = "Soyad";
|
||||
$lang["common_last_name_required"] = "Soyad tələb olunur";
|
||||
$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_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_migration_needed"] = "Girişdən sonra bazaya %1 köçməsi başlayacaq.";
|
||||
$lang["common_new"] = "Yenisi";
|
||||
$lang["common_no_persons_to_display"] = "Göstərmək üçün heç kim yoxdur.";
|
||||
$lang["common_none_selected_text"] = "Seçin";
|
||||
$lang["common_or"] = "Və ya";
|
||||
$lang["common_phone_number"] = "Telefon";
|
||||
$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_powered_by"] = "Yaradıcı";
|
||||
$lang["common_price"] = "Qiymət";
|
||||
$lang["common_print"] = "Çap";
|
||||
$lang["common_remove"] = "Silmək";
|
||||
$lang["common_required"] = "Tələb olunan";
|
||||
$lang["common_required"] = "Vacib";
|
||||
$lang["common_restore"] = "Bərpa Etmək";
|
||||
$lang["common_return_policy"] = "Geri qaytarmaq haqqında nizamnamə";
|
||||
$lang["common_return_policy"] = "Qaytarma siyasəti";
|
||||
$lang["common_search"] = "Axtarış";
|
||||
$lang["common_search_options"] = "Axtarış variantları";
|
||||
$lang["common_searched_for"] = "Axtarıldı";
|
||||
$lang["common_state"] = "Ştat";
|
||||
$lang["common_submit"] = "Təqdim";
|
||||
$lang["common_total_spent"] = "Cəmi Xərclənmiş";
|
||||
$lang["common_state"] = "Əyalət";
|
||||
$lang["common_submit"] = "Təsdiqlə";
|
||||
$lang["common_total_spent"] = "Ümumi xərc";
|
||||
$lang["common_unknown"] = "Naməlum";
|
||||
$lang["common_view_recent_sales"] = "Son Satışları Göstər";
|
||||
$lang["common_website"] = "Web-adres";
|
||||
$lang["common_website"] = "Veb Sayt";
|
||||
$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_welcome_message"] = "ALSAN-a Xoş gəlmisiniz, başlamaq üçün bir modula basın.";
|
||||
$lang["common_you_are_using_ospos"] = "Açıq Layihədə Satışın Avtomatlaşdırma Nöqtəsi versiya";
|
||||
$lang["common_zip"] = "Poçt Kodu";
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
<?php
|
||||
|
||||
$lang["config_address"] = "Şirkət Adresi";
|
||||
$lang["config_address_required"] = "Şirkətin adı olan boşluq sahəsi doldurulmalıdı.";
|
||||
$lang["config_address_required"] = "Şirkətin adı olan boşluq sahəsi doldurulmalıdı.";
|
||||
$lang["config_all_set"] = "Bütün fayl icazələri düzgün qurulub!";
|
||||
$lang["config_allow_duplicate_barcodes"] = "Dublikat Barkodlarına icazə verin";
|
||||
$lang["config_apostrophe"] = "Apastrof";
|
||||
$lang["config_backup_button"] = "Ehtiyyat Köçürmə";
|
||||
@@ -33,6 +34,7 @@ $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_category_dropdown"] = "Bölməni açılan siyahida göstər";
|
||||
$lang["config_center"] = "Mərkəz";
|
||||
$lang["config_comma"] = "vergül";
|
||||
$lang["config_company"] = "Şirkətin Adı";
|
||||
@@ -44,18 +46,9 @@ $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_code"] = "Valyuta Kodu";
|
||||
$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";
|
||||
@@ -77,10 +70,17 @@ $lang["config_default_barcode_page_width_number"] = "Standart Barkod Sahifə gen
|
||||
$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_item_columns"] = "Sabit Görünür Malların Sütunları";
|
||||
$lang["config_default_origin_tax_code"] = "Vergi Kodunun Standart Mənbəyi";
|
||||
$lang["config_default_sales_discount"] = "Standart Satış Endirimi %";
|
||||
$lang["config_default_receivings_discount"] = "Alışdan sonra standart endirim";
|
||||
$lang["config_default_receivings_discount_number"] = "Sabit alacaqlar endirimi bir nömrə olmalıdır.";
|
||||
$lang["config_default_receivings_discount_required"] = "Standart alış endirimi tələb olunan sahədir.";
|
||||
$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_category"] = "Standart Vergi Bölməsi";
|
||||
$lang["config_default_tax_code"] = "Standart Vergo kodu";
|
||||
$lang["config_default_tax_jurisdiction"] = "Standart Vergi Yurisdiksiyası";
|
||||
$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 %";
|
||||
@@ -100,19 +100,20 @@ $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_receipt_check_behaviour"] = "E-poçt qəbzi qutusu";
|
||||
$lang["config_email_receipt_check_behaviour_always"] = "Həmişə yoxlanılır";
|
||||
$lang["config_email_receipt_check_behaviour_last"] = "Son seçimi yadda saxla";
|
||||
$lang["config_email_receipt_check_behaviour_never"] = "Həmişə aktiv deyil";
|
||||
$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_enforce_privacy"] = "Məxvilik Təmin edin";
|
||||
$lang["config_enforce_privacy_tooltip"] = "Müştərilərin gizliliyini qorumaq, silmək halında məlumat şifrələməsini təmin etmək";
|
||||
$lang["config_fax"] = "Faks";
|
||||
$lang["config_file_perm"] = "Fayl icazəsində problem var, lütfən bu səhvləri düzəldib səhifəni yeniləyin.";
|
||||
$lang["config_financial_year"] = "Maliyyə İli Başlancığı";
|
||||
$lang["config_financial_year_apr"] = "1 Aprel";
|
||||
$lang["config_financial_year_aug"] = "1 Avgust";
|
||||
@@ -137,14 +138,25 @@ $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_image_allowed_file_types"] = "İcazəli fayl növləri";
|
||||
$lang["config_image_max_height_tooltip"] = "Şəkillərinin maksimum hündürlüyü pikselə(px).";
|
||||
$lang["config_image_max_size_tooltip"] = "Şəkil yükləmələrinin maksimum fayl ölçüsü kilobaytla(kb).";
|
||||
$lang["config_image_max_width_tooltip"] = "Şəkillərinin maksimum enliliyi pikselə(px).";
|
||||
$lang["config_image_restrictions"] = "Şəkil yükləmə məhdudiyyətləri";
|
||||
$lang["config_include_hsn"] = "HSN Kodlarına dəstək verin";
|
||||
$lang["config_info"] = "Məlumat";
|
||||
$lang["config_info_configuration"] = "Dükan İnformasiyası";
|
||||
$lang["config_integrations"] = "İnteqrasiya";
|
||||
$lang["config_integrations_configuration"] = "Üçüncü tərəf inteqrasiya";
|
||||
$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_invoice_type"] = "Qaimənin Tipi";
|
||||
$lang["config_is_readable"] = "oxunur, lakin icazələr 660-dan yüksəkdir.";
|
||||
$lang["config_is_writable"] = "yazılabilir, lakin icazələr 750-dən yüksəkdir.";
|
||||
$lang["config_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";
|
||||
@@ -181,6 +193,8 @@ $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_multi_pack_enabled"] = "Hər bir elementə birdən çox paket";
|
||||
$lang["config_no_risk"] = "Təhlükəsizlik / zəiflik riski yoxdur.";
|
||||
$lang["config_none"] = "Heç biri";
|
||||
$lang["config_notify_alignment"] = "Bildiriş Pəncərə Mövqeyi";
|
||||
$lang["config_number_format"] = "Nömrə Formatı";
|
||||
@@ -188,24 +202,27 @@ $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_os_timezone"] = "OSPOS Saat qurşağı:";
|
||||
$lang["config_ospos_info"] = "OSPOS quraşdırılması məlumatı";
|
||||
$lang["config_payment_options_order"] = "Sifariş üçün Ödəmə Şərtləri";
|
||||
$lang["config_perm_risk"] = "Permissions higher than 750 leaves this software at risk.";
|
||||
$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_delay_autoreturn"] = "Gecikmiş satışa Avto qaytarılma";
|
||||
$lang["config_print_delay_autoreturn_number"] = "Satışı dayandırmaq üçün autoqaytarılma zəruri bir sahədir.";
|
||||
$lang["config_print_delay_autoreturn_required"] = "Satışı dayandırmaq üçün autoqaytarılma bir sıra olmalıdır.";
|
||||
$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_receipt_check_behaviour"] = "Qəbzin çapını təsdiqləyin";
|
||||
$lang["config_print_receipt_check_behaviour_always"] = "Həmişə yoxlanılır";
|
||||
$lang["config_print_receipt_check_behaviour_last"] = "Son seçimi yadda saxla";
|
||||
$lang["config_print_receipt_check_behaviour_never"] = "Həmişə təsdiqləsin";
|
||||
$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.";
|
||||
@@ -214,7 +231,7 @@ $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_quote_default_comments"] = "Standart şərhlər";
|
||||
$lang["config_receipt"] = "Çek";
|
||||
$lang["config_receipt_configuration"] = "Çek Cap Parametirləri";
|
||||
$lang["config_receipt_default"] = "Adi";
|
||||
@@ -227,12 +244,14 @@ $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_tax_ind"] = "Vergi göstəricisinə bax";
|
||||
$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_report_an_issue"] = "Bir problemi bildirişi";
|
||||
$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ı";
|
||||
@@ -241,17 +260,21 @@ $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_security_issue"] = "Təhlükəsizlik açığı xəbərdarlığı";
|
||||
$lang["config_server_notice"] = "Xahiş edirik, hesabatın təqdim edilməsi üçün aşağıdakı məlumatı istifadə edin.";
|
||||
$lang["config_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_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_system_conf"] = "Quraşdırma və Conf";
|
||||
$lang["config_system_info"] = "System Info";
|
||||
$lang["config_table"] = "Masa";
|
||||
$lang["config_table_configuration"] = "Cədvəl Konfiqurasiyası";
|
||||
$lang["config_takings_printer"] = "Printer Çeki";
|
||||
@@ -263,11 +286,15 @@ $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_id"] = "Vergi İD";
|
||||
$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_timezone_error"] = "OSPOS Saat qurşağı Yerli saat qurşağınızdan fərqlidir.";
|
||||
$lang["config_top"] = "Yuxarı";
|
||||
$lang["config_use_destination_based_tax"] = "Təyinatından vergi istifadə edin";
|
||||
$lang["config_user_timezone"] = "Yerli saat qurşağı:";
|
||||
$lang["config_website"] = "Vebsayt";
|
||||
$lang["config_work_order_enable"] = "İş Sifariş Dəstəyi";
|
||||
$lang["config_work_order_format"] = "İş Sifarş Farmatı";
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user