Compare commits
118 Commits
v23.0.1.OS
...
dependabot
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2fd9523b0c | ||
|
|
92032cf1eb | ||
|
|
22cd81611d | ||
|
|
88962d4380 | ||
|
|
b73e244865 | ||
|
|
5f050282f0 | ||
|
|
f1dcc6b6a0 | ||
|
|
e5eccf32a7 | ||
|
|
b6c0256b49 | ||
|
|
e31bf5a4b9 | ||
|
|
06a3172a38 | ||
|
|
e74ca00902 | ||
|
|
28aa16f35c | ||
|
|
fb3b5b562e | ||
|
|
8663a7aff1 | ||
|
|
e9baf45d7c | ||
|
|
2abe52963f | ||
|
|
da55c7a2d2 | ||
|
|
5cd7963f6f | ||
|
|
d986a2b5bb | ||
|
|
1ee4fb4ba1 | ||
|
|
b06780c466 | ||
|
|
5ec497e11d | ||
|
|
df3b6e968a | ||
|
|
3ceb427479 | ||
|
|
d3b4748cba | ||
|
|
2a9e65d8a8 | ||
|
|
4887d89c69 | ||
|
|
e555f4f70d | ||
|
|
eec946acae | ||
|
|
58240f7d25 | ||
|
|
d9c645c5d8 | ||
|
|
294c5bc657 | ||
|
|
0bdee3f4c4 | ||
|
|
4b75bdb0ee | ||
|
|
587a950011 | ||
|
|
d354fa4104 | ||
|
|
0e3ea90bf5 | ||
|
|
b1df0037db | ||
|
|
0c5a505d9e | ||
|
|
86b8345505 | ||
|
|
cdac95bc0e | ||
|
|
8bb61ef4e0 | ||
|
|
22a6f47c8c | ||
|
|
7decc9d810 | ||
|
|
c65bdbbfb3 | ||
|
|
a245826ae7 | ||
|
|
80c3b23ce5 | ||
|
|
65ef379219 | ||
|
|
61ef77a31f | ||
|
|
5f38c8e723 | ||
|
|
ca7c767ebf | ||
|
|
6d2244ef29 | ||
|
|
14a5b88e48 | ||
|
|
3cf5e4ef91 | ||
|
|
b8299b5c57 | ||
|
|
7baec8faf2 | ||
|
|
d897b1ae3e | ||
|
|
d0740e66b4 | ||
|
|
c1f93ae663 | ||
|
|
52358d27b0 | ||
|
|
87941971bd | ||
|
|
2ff6a1ba8d | ||
|
|
e700c4f6ac | ||
|
|
7bc44d3dd5 | ||
|
|
7a76f52f5a | ||
|
|
648901b104 | ||
|
|
dd9e904378 | ||
|
|
f87139ef41 | ||
|
|
df7ca7e924 | ||
|
|
5bc3fb2588 | ||
|
|
016fbe0f3b | ||
|
|
d0be9c988b | ||
|
|
7f20318092 | ||
|
|
89e5a54550 | ||
|
|
86a3ae485f | ||
|
|
a2ca93db83 | ||
|
|
0f7530024e | ||
|
|
854e1038c6 | ||
|
|
b68401efeb | ||
|
|
c366248434 | ||
|
|
1e50da36e6 | ||
|
|
12799bef9c | ||
|
|
d91283912e | ||
|
|
a7ef560f79 | ||
|
|
ae78c85806 | ||
|
|
7453a58aad | ||
|
|
1ca9cc0ed6 | ||
|
|
60c92d7935 | ||
|
|
bb274de175 | ||
|
|
91bb1d2d8a | ||
|
|
526ee66e2d | ||
|
|
0d92c820f7 | ||
|
|
15a45150cb | ||
|
|
984b0fac5c | ||
|
|
08a52d216c | ||
|
|
61abe71314 | ||
|
|
cae28f03a5 | ||
|
|
4a4d895592 | ||
|
|
c05e815c17 | ||
|
|
6e77aa99c4 | ||
|
|
fd99ea299e | ||
|
|
c3344b99fa | ||
|
|
ca58e75556 | ||
|
|
bf43ed8730 | ||
|
|
b922a48141 | ||
|
|
26e55e8644 | ||
|
|
af9b9119ef | ||
|
|
afa345f374 | ||
|
|
a3d6430102 | ||
|
|
e625f6013a | ||
|
|
577ed9938f | ||
|
|
2ade4d9a4a | ||
|
|
a55c56215a | ||
|
|
16014bb38e | ||
|
|
a75325fb52 | ||
|
|
9cee4e91df | ||
|
|
8b276d54e6 |
33
.gitignore
vendored
33
.gitignore
vendored
@@ -1,12 +1,35 @@
|
|||||||
/.settings
|
/.settings
|
||||||
/.buildpath
|
/.buildpath
|
||||||
/.project
|
/.project
|
||||||
/.idea/
|
.idea/
|
||||||
/build
|
/build
|
||||||
/deployment/clients/dev/data/
|
/deployment/clients/dev/data/*
|
||||||
/deployment/clients/test/data/
|
/deployment/clients/test/data/*
|
||||||
/deployment/clients/local/data/
|
/deployment/clients/local/data/*
|
||||||
/.vagrant
|
/.vagrant
|
||||||
|
keys.tags.pub
|
||||||
|
keys.dev.pub
|
||||||
/app/config.php
|
/app/config.php
|
||||||
/app/data/*
|
/app/icehrm.key
|
||||||
|
/app/data/*.*
|
||||||
|
/app/data/keys/*
|
||||||
|
icehrm.key
|
||||||
|
cache.properties
|
||||||
|
node_modules/*
|
||||||
|
test/frontend/node_modules/*
|
||||||
|
web/dist/*.map
|
||||||
|
web/admin/dist/*.map
|
||||||
|
web/modules/dist/*.map
|
||||||
|
test/frontend/cypress/videos/*
|
||||||
|
test/frontend/cypress/screenshots/*
|
||||||
.gitkeep
|
.gitkeep
|
||||||
|
web/node_modules
|
||||||
|
/frontend/node_modules/*
|
||||||
|
docker/development/db_data
|
||||||
|
docker/prod/db_data
|
||||||
|
docker/prod/app_data
|
||||||
|
docker/testing/db_data
|
||||||
|
!deployment/vagrant/ssl/icehrm.key
|
||||||
|
/web/dist/vendor.js.map
|
||||||
|
/web/dist/admin-bundle.js.map
|
||||||
|
/web/dist/modules-bundle.js.map
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
services:
|
services:
|
||||||
- mysql
|
- mysql
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- ant
|
||||||
before_script:
|
before_script:
|
||||||
- echo "USE mysql;\nUPDATE user SET password=PASSWORD('dev') WHERE user='root';\nFLUSH PRIVILEGES;\n" | mysql -u root
|
- echo "USE mysql;\nUPDATE user SET authentication_string=PASSWORD('dev') WHERE user='root';\nFLUSH PRIVILEGES;\n" | mysql -u root
|
||||||
install:
|
install:
|
||||||
#- rm $TRAVIS_BUILD_DIR/tools/phpunit
|
#- rm $TRAVIS_BUILD_DIR/tools/phpunit
|
||||||
#- composer require --dev phpunit/phpunit ~6.5.5
|
#- composer require --dev phpunit/phpunit ~6.5.5
|
||||||
@@ -12,4 +16,5 @@ language: php
|
|||||||
php:
|
php:
|
||||||
- '7.0'
|
- '7.0'
|
||||||
- '7.1'
|
- '7.1'
|
||||||
|
- '7.2'
|
||||||
after_failure: "cat /tmp/icehrm.test.log"
|
after_failure: "cat /tmp/icehrm.test.log"
|
||||||
|
|||||||
64
Dockerfile
Normal file
64
Dockerfile
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
FROM alpine:3.11
|
||||||
|
LABEL Maintainer="Thilina, Pituwala <thilina@icehrm.com>" \
|
||||||
|
Description="IceHrm Docker Container with Nginx 1.16 & PHP-FPM 7.3 based on Alpine Linux."
|
||||||
|
|
||||||
|
ENV PHPIZE_DEPS \
|
||||||
|
autoconf \
|
||||||
|
dpkg-dev dpkg \
|
||||||
|
file \
|
||||||
|
g++ \
|
||||||
|
gcc \
|
||||||
|
libc-dev \
|
||||||
|
make \
|
||||||
|
pkgconf \
|
||||||
|
musl-dev \
|
||||||
|
re2c \
|
||||||
|
php7-dev \
|
||||||
|
php7-pear
|
||||||
|
|
||||||
|
RUN apk --no-cache add bind-tools
|
||||||
|
|
||||||
|
# Install packages
|
||||||
|
RUN apk --no-cache add php php-fpm php-opcache php-mysqli php-json php-openssl php-curl \
|
||||||
|
php-zlib php-xml php-phar php-intl php-dom php-xmlreader php-ctype php-session \
|
||||||
|
php-mbstring php-gd php7-ldap nginx supervisor curl
|
||||||
|
|
||||||
|
# Install xdebug
|
||||||
|
RUN apk add --no-cache $PHPIZE_DEPS \
|
||||||
|
&& pecl install xdebug-2.9.5
|
||||||
|
|
||||||
|
# Configure nginx
|
||||||
|
COPY docker/development/config/nginx.conf /etc/nginx/nginx.conf
|
||||||
|
# Remove default server definition
|
||||||
|
RUN rm /etc/nginx/conf.d/default.conf
|
||||||
|
|
||||||
|
# Configure PHP-FPM
|
||||||
|
COPY docker/development/config/fpm-pool.conf /etc/php7/php-fpm.d/www.conf
|
||||||
|
COPY docker/development/config/php.ini /etc/php7/conf.d/custom.ini
|
||||||
|
|
||||||
|
# Configure supervisord
|
||||||
|
COPY docker/development/config/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||||
|
|
||||||
|
# Setup document root
|
||||||
|
RUN mkdir -p /var/www/html
|
||||||
|
|
||||||
|
# Make sure files/folders needed by the processes are accessable when they run under the nobody user
|
||||||
|
RUN chown -R nobody.nobody /var/www/html && \
|
||||||
|
chown -R nobody.nobody /run && \
|
||||||
|
chown -R nobody.nobody /var/lib/nginx && \
|
||||||
|
chown -R nobody.nobody /var/log/nginx
|
||||||
|
|
||||||
|
# Switch to use a non-root user from here on
|
||||||
|
USER nobody
|
||||||
|
|
||||||
|
# Add application
|
||||||
|
WORKDIR /var/www/html
|
||||||
|
|
||||||
|
# Expose the port nginx is reachable on
|
||||||
|
EXPOSE 8080
|
||||||
|
|
||||||
|
# Let supervisord start nginx & php-fpm
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
|
||||||
|
|
||||||
|
# Configure a healthcheck to validate that everything is up&running
|
||||||
|
HEALTHCHECK --timeout=10s CMD curl --silent --fail http://127.0.0.1:8080/fpm-ping
|
||||||
49
Dockerfile-prod
Normal file
49
Dockerfile-prod
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
FROM alpine:3.11
|
||||||
|
LABEL Maintainer="Thilina, Pituwala <thilina@icehrm.com>" \
|
||||||
|
Description="IceHrm Docker Container with Nginx 1.16 & PHP-FPM 7.3 based on Alpine Linux."
|
||||||
|
|
||||||
|
# Install packages
|
||||||
|
RUN apk --no-cache add php7 php7-fpm php7-opcache php7-mysqli php7-json php7-openssl php7-curl \
|
||||||
|
php7-zlib php7-xml php7-phar php7-intl php7-dom php7-xmlreader php7-ctype php7-session \
|
||||||
|
php7-mbstring php7-gd php7-ldap nginx supervisor curl
|
||||||
|
|
||||||
|
# Configure nginx
|
||||||
|
COPY docker/prod/config/nginx.conf /etc/nginx/nginx.conf
|
||||||
|
# Remove default server definition
|
||||||
|
RUN rm /etc/nginx/conf.d/default.conf
|
||||||
|
|
||||||
|
# Configure PHP-FPM
|
||||||
|
COPY docker/prod/config/fpm-pool.conf /etc/php7/php-fpm.d/www.conf
|
||||||
|
COPY docker/prod/config/php.ini /etc/php7/conf.d/custom.ini
|
||||||
|
|
||||||
|
# Configure supervisord
|
||||||
|
COPY docker/prod/config/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||||
|
|
||||||
|
# Setup document root
|
||||||
|
RUN mkdir -p /var/www/html
|
||||||
|
|
||||||
|
# Make sure files/folders needed by the processes are accessable when they run under the nobody user
|
||||||
|
RUN chown -R nobody.nobody /var/www/html && \
|
||||||
|
chown -R nobody.nobody /run && \
|
||||||
|
chown -R nobody.nobody /var/lib/nginx && \
|
||||||
|
chown -R nobody.nobody /var/log/nginx
|
||||||
|
|
||||||
|
# Switch to use a non-root user from here on
|
||||||
|
USER nobody
|
||||||
|
|
||||||
|
# Add application
|
||||||
|
WORKDIR /var/www/html
|
||||||
|
COPY --chown=nobody ./app /var/www/html/app/
|
||||||
|
COPY --chown=nobody ./core /var/www/html/core/
|
||||||
|
COPY --chown=nobody ./web /var/www/html/web/
|
||||||
|
COPY --chown=nobody ./index.php /var/www/html/index.php
|
||||||
|
COPY --chown=nobody ./docker/prod/config/config.php /var/www/html/app/config.php
|
||||||
|
|
||||||
|
# Expose the port nginx is reachable on
|
||||||
|
EXPOSE 8070
|
||||||
|
|
||||||
|
# Let supervisord start nginx & php-fpm
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
|
||||||
|
|
||||||
|
# Configure a healthcheck to validate that everything is up&running
|
||||||
|
HEALTHCHECK --timeout=10s CMD curl --silent --fail http://127.0.0.1:8071/fpm-ping
|
||||||
50
Dockerfile-testing
Normal file
50
Dockerfile-testing
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
FROM alpine:3.11
|
||||||
|
LABEL Maintainer="Thilina, Pituwala <thilina@icehrm.com>" \
|
||||||
|
Description="IceHrm Docker Container with Nginx 1.16 & PHP-FPM 7.3 based on Alpine Linux."
|
||||||
|
|
||||||
|
# Install packages
|
||||||
|
RUN apk --no-cache add php7 php7-fpm php7-opcache php7-mysqli php7-json php7-openssl php7-curl \
|
||||||
|
php7-zlib php7-xml php7-phar php7-intl php7-dom php7-xmlreader php7-ctype php7-session \
|
||||||
|
php7-mbstring php7-gd php7-ldap nginx supervisor curl
|
||||||
|
|
||||||
|
# Configure nginx
|
||||||
|
COPY docker/testing/config/nginx.conf /etc/nginx/nginx.conf
|
||||||
|
# Remove default server definition
|
||||||
|
RUN rm /etc/nginx/conf.d/default.conf
|
||||||
|
|
||||||
|
# Configure PHP-FPM
|
||||||
|
COPY docker/testing/config/fpm-pool.conf /etc/php7/php-fpm.d/www.conf
|
||||||
|
COPY docker/testing/config/php.ini /etc/php7/conf.d/custom.ini
|
||||||
|
|
||||||
|
# Configure supervisord
|
||||||
|
COPY docker/testing/config/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||||
|
|
||||||
|
# Setup document root
|
||||||
|
RUN mkdir -p /var/www/html
|
||||||
|
|
||||||
|
# Make sure files/folders needed by the processes are accessable when they run under the nobody user
|
||||||
|
RUN chown -R nobody.nobody /var/www/html && \
|
||||||
|
chown -R nobody.nobody /run && \
|
||||||
|
chown -R nobody.nobody /var/lib/nginx && \
|
||||||
|
chown -R nobody.nobody /var/log/nginx
|
||||||
|
|
||||||
|
# Switch to use a non-root user from here on
|
||||||
|
USER nobody
|
||||||
|
|
||||||
|
# Add application
|
||||||
|
WORKDIR /var/www/html
|
||||||
|
COPY --chown=nobody ./app /var/www/html/app/
|
||||||
|
COPY --chown=nobody ./core /var/www/html/core/
|
||||||
|
COPY --chown=nobody ./web /var/www/html/web/
|
||||||
|
COPY --chown=nobody ./index.php /var/www/html/index.php
|
||||||
|
COPY --chown=nobody ./docker/testing/config/config.php /var/www/html/app/config.php
|
||||||
|
COPY --chown=nobody ./docker/testing/config/reset-db.php /var/www/html/app/reset-db.php
|
||||||
|
|
||||||
|
# Expose the port nginx is reachable on
|
||||||
|
EXPOSE 8090
|
||||||
|
|
||||||
|
# Let supervisord start nginx & php-fpm
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
|
||||||
|
|
||||||
|
# Configure a healthcheck to validate that everything is up&running
|
||||||
|
HEALTHCHECK --timeout=10s CMD curl --silent --fail http://127.0.0.1:8091/fpm-ping
|
||||||
31
Dockerfile-worker
Normal file
31
Dockerfile-worker
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
FROM alpine:3.11
|
||||||
|
LABEL Maintainer="Thilina, Pituwala <thilina@icehrm.com>" \
|
||||||
|
Description="IceHrm Docker Container with Nginx 1.16 & PHP-FPM 7.3 based on Alpine Linux."
|
||||||
|
|
||||||
|
ARG EXE_ENV
|
||||||
|
|
||||||
|
RUN apk upgrade --available
|
||||||
|
|
||||||
|
RUN apk add --no-cache tini openrc busybox-initscripts
|
||||||
|
|
||||||
|
|
||||||
|
# Install packages
|
||||||
|
RUN apk --no-cache add php7 php7-opcache php7-mysqli php7-json php7-openssl php7-curl \
|
||||||
|
php7-zlib php7-xml php7-phar php7-intl php7-dom php7-xmlreader php7-ctype php7-session \
|
||||||
|
php7-mbstring php7-gd curl
|
||||||
|
|
||||||
|
# Setup document root
|
||||||
|
RUN mkdir -p /var/www/html
|
||||||
|
|
||||||
|
# Add application
|
||||||
|
WORKDIR /var/www/html
|
||||||
|
COPY ./app /var/www/html/app/
|
||||||
|
COPY ./core /var/www/html/core/
|
||||||
|
COPY ./web /var/www/html/web/
|
||||||
|
COPY ./index.php /var/www/html/index.php
|
||||||
|
COPY ./docker/$EXE_ENV/config/config.php /var/www/html/app/config.php
|
||||||
|
|
||||||
|
|
||||||
|
COPY ./docker/worker/config/ice-cron /etc/crontabs/root
|
||||||
|
|
||||||
|
CMD /usr/sbin/crond -f -l 8
|
||||||
30
LICENSE
30
LICENSE
@@ -1,21 +1,15 @@
|
|||||||
MIT License
|
IceHrm is a web based human resource management software
|
||||||
|
Copyright (C) 2020 Thilina, Pituwala
|
||||||
|
|
||||||
Copyright (c) 2016 Thilina Hasantha
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
This program is distributed in the hope that it will be useful,
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
in the Software without restriction, including without limitation the rights
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
GNU General Public License for more details.
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
You should have received a copy of the GNU General Public License
|
||||||
copies or substantial portions of the Software.
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
|
|||||||
46
Vagrantfile
vendored
46
Vagrantfile
vendored
@@ -1,29 +1,33 @@
|
|||||||
# -*- mode: ruby -*-
|
Vagrant.configure("2") do |config|
|
||||||
# vi: set ft=ruby :
|
config.vm.box = "icehrm/icehrm"
|
||||||
|
config.vm.box_version = "1.0.0"
|
||||||
|
config.vm.network "private_network", ip: "192.168.10.12"
|
||||||
|
config.vm.synced_folder ".", "/vagrant", type: "nfs"
|
||||||
|
|
||||||
Vagrant.configure(2) do |config|
|
config.vm.provider "virtualbox" do |vb|
|
||||||
config.vm.box = "thilinah/jessie64_isotope"
|
vb.memory = "1024"
|
||||||
config.vm.box_version = "0.0.1"
|
vb.cpus = "2"
|
||||||
config.vm.network "private_network", ip: "192.168.40.40"
|
vb.name = "icehrm-os.test"
|
||||||
config.vm.synced_folder ".", "/vagrant", type: "nfs"
|
end
|
||||||
|
|
||||||
config.vm.provider "virtualbox" do |vb|
|
config.vm.provision "shell", inline: <<-SHELL
|
||||||
vb.memory = "1024"
|
sudo rm /etc/nginx/ssl/icehrm.*
|
||||||
vb.cpus = "2"
|
sudo ln -s /vagrant/deployment/vagrant/ssl/icehrm.crt /etc/nginx/ssl/icehrm.crt
|
||||||
vb.name = "icehrm.open"
|
sudo ln -s /vagrant/deployment/vagrant/ssl/icehrm.key /etc/nginx/ssl/icehrm.key
|
||||||
end
|
|
||||||
|
|
||||||
|
sudo rm /etc/nginx/sites-enabled/default
|
||||||
|
sudo ln -s /vagrant/deployment/vagrant/sites-available/default /etc/nginx/sites-enabled/default
|
||||||
|
|
||||||
config.vm.provision "shell", inline: <<-SHELL
|
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
|
||||||
sudo apt-get update
|
|
||||||
SHELL
|
|
||||||
|
|
||||||
config.vm.hostname = "icehrm.open"
|
sudo service nginx restart
|
||||||
|
sudo chmod 755 -R /var/log
|
||||||
|
SHELL
|
||||||
|
|
||||||
config.hostsupdater.aliases = [
|
config.vm.hostname = "icehrm.os"
|
||||||
"app.dev",
|
|
||||||
"app.app.dev",
|
|
||||||
"clients.app.dev"
|
|
||||||
]
|
|
||||||
|
|
||||||
|
config.hostsupdater.aliases = [
|
||||||
|
"icehrm.os"
|
||||||
|
]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -4,4 +4,4 @@ if(php_sapi_name() != 'cli'){
|
|||||||
}
|
}
|
||||||
|
|
||||||
include ('config.php');
|
include ('config.php');
|
||||||
include (APP_BASE_PATH.'crons/cron.php');
|
include (APP_BASE_PATH.'crons/cron.php');
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
<?php
|
<?php
|
||||||
include ('config.php');
|
include ('config.php');
|
||||||
include (APP_BASE_PATH.'rest.php');
|
include (APP_BASE_PATH.'rest.php');
|
||||||
|
|||||||
1
bin/export-plural-rules
Symbolic link
1
bin/export-plural-rules
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../core/lib/composer/vendor/gettext/languages/bin/export-plural-rules
|
||||||
1
bin/markdown
Symbolic link
1
bin/markdown
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../core/lib/composer/vendor/cebe/markdown/bin/markdown
|
||||||
1
bin/pdepend
Symbolic link
1
bin/pdepend
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../core/lib/composer/vendor/pdepend/pdepend/src/bin/pdepend
|
||||||
1
bin/phpcb
Symbolic link
1
bin/phpcb
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../core/lib/composer/vendor/mayflower/php-codebrowser/bin/phpcb
|
||||||
1
bin/phpcbf
Symbolic link
1
bin/phpcbf
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../core/lib/composer/vendor/squizlabs/php_codesniffer/scripts/phpcbf
|
||||||
1
bin/phpcpd
Symbolic link
1
bin/phpcpd
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../core/lib/composer/vendor/sebastian/phpcpd/composer/bin/phpcpd
|
||||||
1
bin/phpcs
Symbolic link
1
bin/phpcs
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../core/lib/composer/vendor/squizlabs/php_codesniffer/scripts/phpcs
|
||||||
1
bin/phploc
Symbolic link
1
bin/phploc
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../core/lib/composer/vendor/phploc/phploc/phploc
|
||||||
1
bin/phpmd
Symbolic link
1
bin/phpmd
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../core/lib/composer/vendor/phpmd/phpmd/src/bin/phpmd
|
||||||
1
bin/phpunit
Symbolic link
1
bin/phpunit
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../core/lib/composer/vendor/phpunit/phpunit/phpunit
|
||||||
1
bin/release
Symbolic link
1
bin/release
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../core/lib/composer/vendor/consolidation/self-update/scripts/release
|
||||||
1
bin/robo
Symbolic link
1
bin/robo
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../core/lib/composer/vendor/consolidation/robo/robo
|
||||||
71
build.xml
71
build.xml
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project name="icehrm-pro" default="build">
|
<project name="icehrm" default="build">
|
||||||
<!-- By default, we assume all tools to be on the $PATH -->
|
<!-- By default, we assume all tools to be on the $PATH -->
|
||||||
<property name="toolsdir" value="${basedir}/tools/"/>
|
<property name="toolsdir" value="${basedir}/bin/"/>
|
||||||
<property name="destination" value="${basedir}/build/app"/>
|
<property name="destination" value="${basedir}/build/app"/>
|
||||||
<property name="testdir" value="${basedir}/build/test"/>
|
<property name="testdir" value="${basedir}/build/test"/>
|
||||||
<property name="origin" value="${basedir}"/>
|
<property name="origin" value="${basedir}"/>
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
<property name="installpath" value="/var/www/apps.gamonoid.com/icehrm-open-core"/>
|
<property name="installpath" value="/var/www/apps.gamonoid.com/icehrm-open-core"/>
|
||||||
|
|
||||||
<target name="build-ci"
|
<target name="build-ci"
|
||||||
depends="prepare,lint,phpcs,copyapp,phpunit"
|
depends="prepare,lint,phpcs-ci"
|
||||||
description=""/>
|
description=""/>
|
||||||
|
|
||||||
<target name="build"
|
<target name="build"
|
||||||
@@ -19,11 +19,11 @@
|
|||||||
description=""/>
|
description=""/>
|
||||||
|
|
||||||
<target name="buildlocal"
|
<target name="buildlocal"
|
||||||
depends="prepare,lint,phpcs,copyapp,phpunit"
|
depends="prepare,lint,phpcs,copyapp"
|
||||||
description=""/>
|
description=""/>
|
||||||
|
|
||||||
<target name="releaseapp"
|
<target name="releaseapp"
|
||||||
depends="prepare,lint,copyapp,phpunit,release"
|
depends="prepare,lint,copyapp,release"
|
||||||
description=""/>
|
description=""/>
|
||||||
|
|
||||||
<target name="clean"
|
<target name="clean"
|
||||||
@@ -80,7 +80,6 @@
|
|||||||
<exec executable="${toolsdir}phploc">
|
<exec executable="${toolsdir}phploc">
|
||||||
<arg value="--count-tests" />
|
<arg value="--count-tests" />
|
||||||
<arg path="${basedir}/core/src" />
|
<arg path="${basedir}/core/src" />
|
||||||
<arg path="${basedir}/test" />
|
|
||||||
</exec>
|
</exec>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
@@ -94,7 +93,6 @@
|
|||||||
<arg value="--log-xml" />
|
<arg value="--log-xml" />
|
||||||
<arg path="${basedir}/build/logs/phploc.xml" />
|
<arg path="${basedir}/build/logs/phploc.xml" />
|
||||||
<arg path="${basedir}/core/src" />
|
<arg path="${basedir}/core/src" />
|
||||||
<arg path="${basedir}/test" />
|
|
||||||
</exec>
|
</exec>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
@@ -137,15 +135,13 @@
|
|||||||
<arg value="--extensions=php" />
|
<arg value="--extensions=php" />
|
||||||
<arg value="--ignore=autoload.php" />
|
<arg value="--ignore=autoload.php" />
|
||||||
<arg path="${basedir}/core/src" />
|
<arg path="${basedir}/core/src" />
|
||||||
<arg path="${basedir}/test/unit" />
|
|
||||||
<arg path="${basedir}/test/integration" />
|
|
||||||
</exec>
|
</exec>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="phpcs-ci"
|
<target name="phpcs-ci"
|
||||||
depends="prepare"
|
depends="prepare"
|
||||||
description="Find coding standard violations using PHP_CodeSniffer and log result in XML format. Intended for usage within a continuous integration environment.">
|
description="Find coding standard violations using PHP_CodeSniffer and log result in XML format. Intended for usage within a continuous integration environment.">
|
||||||
<exec executable="${toolsdir}phpcs" output="/dev/null">
|
<exec executable="${toolsdir}phpcs" failonerror="true">
|
||||||
<arg value="--report=checkstyle" />
|
<arg value="--report=checkstyle" />
|
||||||
<arg value="--report-file=${basedir}/build/logs/checkstyle.xml" />
|
<arg value="--report-file=${basedir}/build/logs/checkstyle.xml" />
|
||||||
<arg value="--standard=PSR2" />
|
<arg value="--standard=PSR2" />
|
||||||
@@ -181,12 +177,41 @@
|
|||||||
</exec>
|
</exec>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
|
<target name="phpunit-sa"
|
||||||
|
description="Run unit tests with PHPUnit">
|
||||||
|
<exec executable="${toolsdir}phpunit" failonerror="true">
|
||||||
|
<arg value="--configuration"/>
|
||||||
|
<arg path="${basedir}/phpunit.xml"/>
|
||||||
|
</exec>
|
||||||
|
</target>
|
||||||
|
|
||||||
<target name="phpdox"
|
<target name="phpdox"
|
||||||
depends=""
|
depends=""
|
||||||
description="Generate project documentation using phpDox">
|
description="Generate project documentation using phpDox">
|
||||||
<exec executable="${toolsdir}phpdox"/>
|
<exec executable="${toolsdir}phpdox"/>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
|
<target name="copyjs"
|
||||||
|
description="Copy generated assets">
|
||||||
|
|
||||||
|
<delete includeemptydirs="true">
|
||||||
|
<fileset dir="${destination}">
|
||||||
|
<include name="web/admin/dist/**"/>
|
||||||
|
<include name="web/modules/dist/**"/>
|
||||||
|
<include name="web/dist/**"/>
|
||||||
|
</fileset>
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<copy todir="${destination}" overwrite="true">
|
||||||
|
<fileset dir="${origin}">
|
||||||
|
<include name="web/admin/dist/**"/>
|
||||||
|
<include name="web/modules/dist/**"/>
|
||||||
|
<include name="web/dist/**"/>
|
||||||
|
</fileset>
|
||||||
|
</copy>
|
||||||
|
|
||||||
|
</target>
|
||||||
|
|
||||||
<target name="copyapp"
|
<target name="copyapp"
|
||||||
description="Copy generated files to QA app">
|
description="Copy generated files to QA app">
|
||||||
|
|
||||||
@@ -196,11 +221,21 @@
|
|||||||
</fileset>
|
</fileset>
|
||||||
</delete>
|
</delete>
|
||||||
|
|
||||||
<copy todir="${destination}" overwrite="true">
|
<copy todir="${destination}" overwrite="true">
|
||||||
<fileset dir="${origin}">
|
<fileset dir="${origin}">
|
||||||
<include name="**/*"/>
|
<include name="**/*"/>
|
||||||
</fileset>
|
<exclude name="node_modules/**"/>
|
||||||
</copy>
|
<exclude name="web/node_modules/**"/>
|
||||||
|
<exclude name="web/admin/**"/>
|
||||||
|
<exclude name="web/modules/**"/>
|
||||||
|
<exclude name="web/api/**"/>
|
||||||
|
<exclude name="web/api-common/**"/>
|
||||||
|
<exclude name="web/components/**"/>
|
||||||
|
<exclude name="web/themecss/**"/>
|
||||||
|
<exclude name="web/themejs/**"/>
|
||||||
|
<exclude name="docs/**"/>
|
||||||
|
</fileset>
|
||||||
|
</copy>
|
||||||
|
|
||||||
<delete includeemptydirs="true">
|
<delete includeemptydirs="true">
|
||||||
<fileset dir="${destination}">
|
<fileset dir="${destination}">
|
||||||
@@ -219,6 +254,9 @@
|
|||||||
<include name="cache.properties"/>
|
<include name="cache.properties"/>
|
||||||
<include name="phpdox.xml"/>
|
<include name="phpdox.xml"/>
|
||||||
<include name="phpunit.xml"/>
|
<include name="phpunit.xml"/>
|
||||||
|
<include name="web/admin/dist/*.map"/>
|
||||||
|
<include name="web/modules/dist/*.map"/>
|
||||||
|
<include name="web/dist/*.map"/>
|
||||||
</fileset>
|
</fileset>
|
||||||
</delete>
|
</delete>
|
||||||
|
|
||||||
@@ -277,8 +315,5 @@
|
|||||||
<gzip destfile="${basedir}/build/release/${env.appname}_${env.Version}.tar.gz" src="${basedir}/build/release/${env.appname}_${env.Version}.tar"/>
|
<gzip destfile="${basedir}/build/release/${env.appname}_${env.Version}.tar.gz" src="${basedir}/build/release/${env.appname}_${env.Version}.tar"/>
|
||||||
|
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
|
|||||||
244
cache.properties
244
cache.properties
@@ -1,244 +0,0 @@
|
|||||||
#Sun Apr 29 05:47:35 CEST 2018
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Expenses/Common/Model/EmployeeExpenseApproval.php=db8eedd8fb151769acded489e9d616c1
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Attendance/Common/Calculations/BasicOvertimeCalculator.php=9c96ae3f71796029d3f93e5c63783f53
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/Email/SNSEmailSender.php=fa905e3ab63ea745c591e744d6741b6b
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Salary/Common/Model/SalaryComponent.php=31e89f1115de7986cd790c8e113ab6d5
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/Email/EmailSender.php=03a98d7d1bcc56a77cc5b3bfa46b79fd
|
|
||||||
/Users/Thilina/Projects/icehrm/test/bootstrap.php=391db040530140c40c84cbbc65645d58
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Utils/InputCleaner.php=e86fcb9daf1d32a4328edf40a31152f8
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Projects/Common/Model/Project.php=05b1cd967d67cb977558f2567d7f6cb6
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Model/DataEntryBackup.php=9ab3a7d48dbdd377a90c505cf692c17e
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Qualifications/Common/Model/Skill.php=e1441a2526e24a7ada7d20b36ff9e355
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Permissions/Admin/Api/PermissionsAdminManager.php=c66e06b926b4006e8a2d7f2e77e0f1fa
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Metadata/Common/Model/Province.php=4a718577000772ab7591a2586f7c75c8
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Loans/Common/Model/EmployeeCompanyLoan.php=abc8959df2ec0f3e19ff6da12c3163f9
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/Approval/ApprovalStatus.php=7a3bc0a73f237eb677254b245887f48f
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/FileService.php=806ff6c25c7654c30e99b0418e1c1475
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Dashboard/User/Api/DashboardActionManager.php=3f797cf4807ad5cd4f881607142df049
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/Cron/Task/EmailSenderTask.php=f0c93e7c807706922cb812723e51bd09
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Attendance/Admin/Api/AttendanceUtil.php=34fe63a4c0f954451afae6c359ea5b38
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Payroll/Common/Model/Deduction.php=1e49d0fd8d4673e3fd094cfb0e467df4
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/Admin/Reports/PayrollDataExport.php=83bd6faa73c75667ecf25091c3729abc
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Employees/Common/Model/Employee.php=f8814257c241892fcf45e1d409d6ab1b
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Metadata/Admin/Api/MetadataAdminManager.php=9f383f9c34ec98a8e2e701825c548a8a
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/Admin/Reports/NewHiresEmployeeReport.php=64eab525953538d481dab6052dd76d81
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Payroll/Common/Model/DeductionGroup.php=c35db5b88aa4b0c7d78b8444688931b5
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Utils/Math/EvalMathFuncs.php=d6f7c26eab307d205ee8483d87a380cb
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/ModuleBuilder/ModuleTabGroup.php=d81cfc2b3dcad2f57317b1274c884d95
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Model/RestAccessToken.php=77c292675944ff887fc8b4c3f7b6da94
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/LDAPManager.php=e88dd0634a6ca372564faa5a1d540796
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Expenses/Admin/Api/ExpensesAdminManager.php=ef6961e298a55379ec4dfff8b9db77fc
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Dashboard/User/Api/DashboardModulesManager.php=2e8968121b445353ee864c76c44483d3
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Model/UserReport.php=0a8a8476e3088011cc54fda139567b56
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Travel/Common/Model/EmployeeTravelRecordApproval.php=d84b2a1323f3663806cc30545e748cd4
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Metadata/Common/Model/SupportedLanguage.php=3ec1220796f6e33641998a33f036d709
|
|
||||||
/Users/Thilina/Projects/icehrm/src/TimeSheets/Common/Model/QTDays.php=32a00e65a966331b776dc37cc0609edf
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Salary/Common/Model/EmployeeSalary.php=ec80c4e8280d23568df79f59d1b32de8
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/SimpleImage.php=fdfb7b2e71e14975ebce16de44ea9dee
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Expenses/User/Api/ExpensesModulesManager.php=4860a1fbb24f4074a6918b2c0b973e80
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Employees/User/Api/EmployeesActionManager.php=7f495266d28737c779e1e9ab3c61e0db
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/Approval/ApproveAdminActionManager.php=3c26b53f0e5141b8f4a033cbbd4c622e
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Settings/Admin/Api/SettingsAdminManager.php=5e5df0056db6f9593128720581feca18
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Travel/User/Api/TravelModulesManager.php=94c9204a67e99af9133cd2aa371cb6da
|
|
||||||
/Users/Thilina/Projects/icehrm/test/unit/UserAttendanceActionManagerUnit.php=1d71d366a13f253ef6931aa87202ac42
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/Admin/Reports/OvertimeRequestReport.php=3cd3bc887da768a32bfc61c152489528
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Employees/User/Api/EmployeesModulesManager.php=ad9ab05afd9cf551870352dba82e6d69
|
|
||||||
/Users/Thilina/Projects/icehrm/test/helper/EmployeeTestDataHelper.php=65ec2048653c9e4e4359d9b6967a860d
|
|
||||||
/Users/Thilina/Projects/icehrm/test/integration/ApprovalStatusIntegration.php=8b9243e5cbb302513d906ff9de246acd
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/Admin/Reports/EmployeeTimeSheetData.php=9d612ee603fdf4e6b710eec725da2656
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Payroll/Common/Model/PayrollData.php=f1a49da4e6e5a91695dd96c9585e1686
|
|
||||||
/Users/Thilina/Projects/icehrm/src/TimeSheets/User/Api/TimeSheetsInitialize.php=d47372f12494019c1004a04cbe57013d
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Modules/Admin/Api/ModulesAdminManager.php=ef70889c3b3b9eae52800ce3a326d540
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Modules/Common/Model/Module.php=8f0d1680087f555f5628c53236c7625f
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Expenses/Common/Model/ExpensesPaymentMethod.php=338ce9cabb90a291e88b940756b06701
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Company/Common/Model/Timezone.php=50aff3bc39221658c35041abdc55ad98
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/Admin/Reports/OvertimeSummaryReport.php=16d9e2f10de82f25d0965e2d327086b9
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Data/Common/Model/DataImport.php=a6af4d8acd5585932823889509cca581
|
|
||||||
/Users/Thilina/Projects/icehrm/src/FieldNames/Common/Model/FieldNameMapping.php=73bd1da0f6e51329dbe12930bb566ccd
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/Admin/Reports/ActiveEmployeeReport.php=261180dfbe69ab83d9d63646111695ba
|
|
||||||
/Users/Thilina/Projects/icehrm/test/unit/LanguageManagerUnit.php=ebb20febce875350bfddd7f0358e6ad0
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Utils/LogManager.php=144ebae4d0ff60f0fd21e79a45aa6e6a
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Dependents/Common/Model/EmployeeDependent.php=1f4b6cd6dfbc14269b53dbbac3730f9e
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Data/Admin/Import/PayrollDataImporter.php=7350ec94ef8a70ba6c263e53c70c7073
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/Admin/Reports/ExpenseReport.php=397c8deb446994b64e2b9fef2845bb89
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/Admin/Reports/OvertimeReport.php=f630ae5402ec7957f42b64fa46cd1923
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/Admin/Reports/EmployeeLeaveEntitlementReport.php=9be41bfeb88fd0171028203f6513c799
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Projects/User/Api/ProjectsModulesManager.php=4fc0463507ca7768a1e493d703ac2581
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Permissions/Common/Model/Permission.php=0745dd3786e95cfc5265c32f47f4ee4a
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Overtime/Admin/Api/OvertimeActionManager.php=0b039c008daf52e64f9ce827eabdd25a
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Salary/User/Api/SalaryModulesManager.php=050d077e79532353a7d12a7221829b7c
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/Cron/IceTask.php=cc9b1481e824fd967eb503248eb92e29
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/Admin/Reports/EmployeeTimesheetReport.php=8661944cf39b10c441841a8af72cb988
|
|
||||||
/Users/Thilina/Projects/icehrm/src/EmergencyContacts/User/Api/EmergencyContactModulesManager.php=527888466137dad3da5c6bf5b7bf9b28
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/SettingsManager.php=ebed24cde74d7fb33cca4ba156389760
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Qualifications/Common/Model/EmployeeLanguage.php=66127455502fb29181324c1cc25f93c4
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/Approval/ApproveCommonActionManager.php=c1b7efb8c4f3fe8199c7e0d6fdd1ccce
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Overtime/Common/Model/EmployeeOvertime.php=50c166318a354b05dc2ae0e442d43a33
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/User/Api/ReportsModulesManager.php=1645b61be16b96d0085510f6a2d30b68
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/RestApiManager.php=c53180aa40576c5fe8c519b2b0a39e32
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Payroll/Common/Model/Payroll.php=5c7eb622aade003f693275944e041cc7
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Attendance/Admin/Api/AttendanceActionManager.php=9045182bc0854647219b0a0418c37ffd
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/Admin/Api/PDFReportBuilder.php=fbbc196b5ea432671667bcc239d8bf54
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Employees/Rest/EmployeeRestEndPoint.php=5a006d8637a05d63f19e130b37bdd97d
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Model/File.php=8211922ac309e1c3e5fc316a90bc0bf0
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Data/Admin/Api/AbstractDataImporter.php=315bf5eec45aa13e174d412014e2237f
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/NotificationManager.php=a739fd4177892d44e78efed1641072cc
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Utils/SessionUtils.php=f5c4db2214dfb4d8bf5b9bfe5edb1bac
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Travel/Admin/Api/TravelActionManager.php=0e2fdd403d3456ebda102d554349e9f4
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Payroll/Common/Model/PayrollColumn.php=0f2e8fd9b44c038f163ae646d3c6f4b6
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Travel/Common/Model/EmployeeTravelRecord.php=5366a1927bd94630217ffbc9386ff605
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/Admin/Reports/TravelRequestReport.php=c4bdd4c88f4a7b15c8091a0dcbb5018a
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/StatusChangeLogManager.php=b091e855d9800eea9d4190e0c75e3e8c
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Qualifications/Admin/Api/QualificationsAdminManager.php=3037d64a2344a497ff0ceea52265d2a6
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/Admin/Reports/EmployeeLeavesReport.php=bd5efb4666ca4103a2e7e98aa24e1c83
|
|
||||||
/Users/Thilina/Projects/icehrm/src/TimeSheets/User/Api/TimeSheetsActionManager.php=ef271183cf6e71d8db24b8d3369e19b9
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Expenses/Common/Model/ExpensesCategory.php=e9c0e170b950a39994d0a33d5981374f
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/Email/SwiftMailer.php=eca37dc0add437ae1089c695b5074b90
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Data/Admin/Import/AttendanceDataImporter.php=dc4dec4294b9feac08a5f996b85cab85
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Salary/Common/Model/PayrollEmployee.php=1a01bd60d1f82fc6f3eeb1875006f659
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/Crypt/AesCtr.php=4897c7fe9a510f38eeb91046127d79f7
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/AbstractModuleManager.php=5bb9fc5859bdd790753277a47752b0b9
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Metadata/Common/Model/ImmigrationStatus.php=f0dc9a94bcc487df21d53387ae8e89ba
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Salary/Admin/Api/SalaryAdminManager.php=8bedb5d82608974feedd1c094cac64fa
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/Admin/Api/ClassBasedReportBuilder.php=fc77219539745bdb6364fc81bdda2516
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/BaseService.php=e0de0276b6a8b58a4e318848a45439b6
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Payroll/Common/Model/PayrollColumnTemplate.php=cb69bf4717cfbaf0f395b931296efd9a
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Expenses/Admin/Api/ExpensesActionManager.php=2997346b4574ccd83e564c338e38b189
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/Admin/Reports/EmployeeTimeTrackReport.php=eddda882fae0c258e97fb50aafe21061
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Metadata/Common/Model/Nationality.php=0f0cd1d95496f95ac9de08aa15e6b6a4
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/ReportHandler.php=80b280cae34fdfbee864b05b07c6789a
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/User/Reports/ExpenseReport.php=7c8d187bc57175a92b8bc0fa33e501f0
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Overtime/Admin/Api/OvertimeAdminManager.php=7ae7776e6445429a1f0158a5efd38c04
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Salary/Common/Model/SalaryComponentType.php=d96878a0b1547f44731830526306ab56
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Travel/Common/Model/EmployeeImmigration.php=1dcb690d0045699a1aa65eda033f9adf
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/MenuItemTemplate.php=7ad7eb3a874ec729ec1baf0760f0b4ed
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Employees/Admin/Api/EmployeesAdminManager.php=15e983c78e17191ced1a7eec13be0d3e
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/Cron/CronUtils.php=b55a1fe1c4ed55dc582e208b341f52b4
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Overtime/Common/Model/EmployeeOvertimeApproval.php=edd2eedebb9f62a44f0e588c615654ce
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Qualifications/Common/Model/EmployeeSkill.php=a02c5ceda0489aba4ed47df010d4892e
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/Admin/Reports/EmployeeAttendanceReport.php=a20c94c986fa57c52daebbcbf4fa1f3f
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Overtime/User/Api/OvertimeActionManager.php=f6d2c26500ed9e10b90bb5826d6c124e
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Projects/Common/Model/Client.php=666b6d5ad575ddd9ccc198f5e98e1211
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Dependents/User/Api/DependentsModulesManager.php=409b6ea72b6ce0319bb12df6458d2bef
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Jobs/Common/Model/JobTitle.php=4765635589eb4cc84cec2e578faa1557
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Model/Cron.php=4f3da95d8dd8e6b4642e6a2c6390c5fe
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Projects/Admin/Api/ProjectsAdminManager.php=8f20c5277a8560a69318263166b804e3
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Loans/Common/Model/CompanyLoan.php=6e1e409dd612f22b47c6ffdcda4fe3a0
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/Migration/MigrationManager.php=10ce5f1187ed06d2b12820a0d9d7e90a
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/Admin/Api/ReportsAdminManager.php=be16482fcb8d6714f13618407acf25a5
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Utils/CalendarTools.php=9f60bf1aaa928a02163680da60ac255c
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Data/Admin/Api/DataAdminManager.php=3913dc1f43ae1965956c420d0d9084c8
|
|
||||||
/Users/Thilina/Projects/icehrm/src/TimeSheets/Common/Model/EmployeeTimeEntry.php=f69d37222ff6d528b5dde53fcbb5b3a8
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/UIManager.php=03b64742f6595dedce18bba1372d4b20
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/MemcacheService.php=e07916b1c628686162c19fa26aad93d5
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/User/Reports/EmployeeTimesheetReport.php=2ec16a7dccb131862f295ad97db9067b
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Metadata/Common/Model/Country.php=f772b574b2b1310977a50daf9d2a51ef
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Model/Audit.php=31e7780e4e210a8c840188d2015d2e01
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/Approval/ApproveModuleActionManager.php=834a7aad3a07c194a0a830cc353daec9
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Loans/Admin/Api/LoansAdminManager.php=0954d425f553598a6f3a9dbefc19fb45
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/SubActionManager.php=7523ec5017da87c8d7d3e4438310d96f
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Model/ApproveModel.php=7f15abbdae78812f15d65e7a165f6115
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/CustomFieldManager.php=7259e4d11e73fdd04984097e00233203
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Payroll/Admin/Api/PayrollActionManager.php=177d85ae36ed00f8a42d9bb9e8f9aa1a
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Loans/User/Api/LoansModulesManager.php=4f0650c7b4ab3ec6c241bd32c680dfca
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Utils/Math/EvalMathStack.php=4b86e2041c19d8ef8eaf7f4ea630e116
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Users/Admin/Api/UsersAdminManager.php=695662b7186616d4379d0a588b5130e6
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Qualifications/Common/Model/Language.php=c904c6e3e2e167f5e79afffabf94716a
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/Macaw.php=5a2f26ffcb41c9f42af776a91c283572
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Attendance/Common/Model/AttendanceStatus.php=ad80af2d596e584a3ab60a5fce4aac09
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/Email/SMTPEmailSender.php=0df2a519ce3a2d61d486b9527782f72b
|
|
||||||
/Users/Thilina/Projects/icehrm/src/FieldNames/Admin/Api/FieldNamesAdminManager.php=5eca8c33ccd8d9fc1c4e5b7fa81ed93c
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Payroll/Common/Model/PayFrequency.php=9207a551d667bab9734aa041e02a1be1
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Metadata/Common/Model/CurrencyType.php=e9f5f17d4e18a706e4c4068f253c01ac
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Employees/Common/Model/EmployeeApproval.php=481ddd171d66e644bb442ab02e97b097
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Data/Admin/Api/DataImporter.php=ad94e2de98e11c1d3f0f0b32c46f358c
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Expenses/Common/Model/EmployeeExpense.php=29d2dccb5d009d392c4b8f44c59fcdd8
|
|
||||||
/Users/Thilina/Projects/icehrm/test/TestTemplate.php=8e6ff185d587f339892a9a720e2bfa5f
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/Crypt/Aes.php=d0b15a04faf73b0ff35efc308d09b6e7
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/LanguageManager.php=8df5d6d62bae8a5e14ab1cd486325af3
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Qualifications/Common/Model/Education.php=6f992ef2bb13951f3c52f5209d73733b
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/User/Reports/EmployeeLeavesReport.php=0bd5801ac4c9803db53198c68904d5f5
|
|
||||||
/Users/Thilina/Projects/icehrm/src/TimeSheets/Common/Model/EmployeeTimeSheet.php=2a4e685315485e4933df5d2ba856d8fb
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/User/Reports/ClientProjectTimeReport.php=f860b3cff536b5074bb7d1e193c1c41d
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Expenses/User/Api/ExpensesActionManager.php=c8ce93f6877fd2cdbc963b5c38708f04
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/User/Reports/EmployeeAttendanceReport.php=600c1feca3eab6d724ac9661f2f514d5
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Utils/Math/EvalMath.php=476cb2ee5306966d7cd7bee2f3202559
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Model/Migration.php=3f11c6dfaa18d4a6dcb2caa8d3677121
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Data/Common/Model/DataImportFile.php=a0b3f8410e80862ba79aa9d8fed383d7
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Travel/User/Api/TravelActionManager.php=e6241358886dc00138506f3bc4d13346
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Company/Common/Model/CompanyStructure.php=a1957202858bc093b29e8dfe48955cc6
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/Migration/AbstractMigration.php=324fe15e15a0ca2b0f50f4029ae10548
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Qualifications/Common/Model/EmployeeCertification.php=96045388cba569f4ea9617dc8fbeded6
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Payroll/Common/Model/PayslipTemplate.php=cc9bf7552cfccd84a0b9b1431f224f1f
|
|
||||||
/Users/Thilina/Projects/icehrm/test/test.includes.php=d87bcd9386b3271b62818e2b86df6c28
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Company/Admin/Api/CompanyAdminManager.php=484a8b669d5fed117f1f40f289f2c6f4
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/Email/PHPMailer.php=54789d10177cc5075cb4d50838b05821
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Qualifications/Common/Model/EmployeeEducation.php=8ba4cbc034b5ee23d593cc3352cf46a9
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/Admin/Reports/TerminatedEmployeeReport.php=1b8b58d6e85eb77e45aaf44f426025ea
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Users/Admin/Api/UsersEmailSender.php=87247955c331115e482aa3e577eca0b4
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/IceConstants.php=5f7497997d12c27dab080b6f34640df1
|
|
||||||
/Users/Thilina/Projects/icehrm/test/test.config.php=2d82ac9b697f10bb9bd6d760f63d2be4
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Travel/Common/Model/ImmigrationDocument.php=c0636d2ce3e7d89d9e4ebb00c8d1450f
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/ModuleBuilder/ModuleBuilder.php=29fed2a27587032060efc02c7a30a838
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/User/Reports/PayslipReport.php=a7197be66726cf126c196bf6beccb907
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/User/Reports/EmployeeTimeTrackReport.php=ce6f2b098845233342c336f837001554
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/Admin/Api/PDFReportBuilderInterface.php=cc049c4c1b86e5a5e4fd99ddf24e563d
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Qualifications/User/Api/QualificationsModulesManager.php=e668d64139ecc146af9ebaea2f91e1fe
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/RestEndPoint.php=86136262a2e2a8f45564d17123dd5812
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/S3FileSystem.php=6308aca72380cef1981625946b59652f
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/Cron/Task/EmailIceTask.php=b754a286061db310b3f18677946d7b43
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Data/Admin/Import/EmployeeDataImporter.php=d1b66e2d042335df792fa8913d363d5f
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Projects/Common/Model/EmployeeProject.php=b0de956de8ec4c423604195b96f57df9
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Model/Report.php=498c96015d1be2b31d8cd0bcedea7fab
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Metadata/Common/Model/CustomFieldValue.php=a9b7d8db9ee113345298ba49f9354be8
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/Cron/IceCron.php=edb023962095493d7daa728793ceaf9c
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Settings/Admin/Api/SettingsInitialize.php=148bc391f5d101121f915a590f991a6b
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Dashboard/Admin/Api/DashboardActionManager.php=5e8e996f9f4b77f1fbd10e026a5d1351
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Payroll/Admin/Api/PayrollAdminManager.php=9bac9a6ed8406c9eb6fe7ef666aee482
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Jobs/Admin/Api/JobsAdminManager.php=12546328edffcc5bda7e84f6a8c56d9e
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Jobs/Common/Model/PayGrade.php=55f2f83ff22136154b14460b6b37632a
|
|
||||||
/Users/Thilina/Projects/icehrm/src/EmergencyContacts/Common/Model/EmergencyContact.php=6ec07210d94e695732c6d1a6a0fb34be
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Employees/Admin/Api/EmployeesActionManager.php=63c6ccf63f54eab8556c893cf47f983c
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Metadata/Common/Model/CalculationHook.php=bbfa6f83e4042db9640b67c131274118
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Users/Common/Model/User.php=cc9b6c966b40678574fdd35bb1f16cb2
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Users/Admin/Api/UsersActionManager.php=b65c97c665190f9fb011cc8d0b97888c
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Attendance/User/Api/AttendanceModulesManager.php=f1b34fae71cc963e197b41ed2ca032ca
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/IceResponse.php=bb74495c33fab87e96f72b610cfd5374
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Qualifications/Common/Model/Certification.php=e81a7f90a10799d97a918e2cb071c1a9
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Model/BaseModel.php=d932a9bb126c174000b9c51a8cb4d2f6
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Model/StatusChangeLog.php=0745140bddda3f06915dcfcc6ac97ce8
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/AbstractInitialize.php=841a38244ca1d44b008f67a6b45df348
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/User/Reports/EmployeeTimeSheetData.php=2d6e95947963949b1c5150269d7527f7
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Data/Admin/Api/DataActionManager.php=82f3ced08b946ca6e10a83c6e07475db
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/User/Reports/OvertimeReport.php=431965980b2458019398d2ed6d7fc39a
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Metadata/Common/Model/Ethnicity.php=5f5935cdeab1b41ac0d2db9f6973f6b0
|
|
||||||
/Users/Thilina/Projects/icehrm/test/integration/MigrationManagerIntegration.php=f0f5bccf120067b34396f1e61fd6d20a
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/Admin/Api/CSVReportBuilderInterface.php=6ada9a15e850c09162fc75020d6b00e4
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Payroll/Common/Model/PayrollCalculations.php=70d1b733b1adbb6c6a2ea0dcec89efca
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Travel/Admin/Api/TravelAdminManager.php=9b3c6e369e2264d2bc9fca122e8ed90c
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Model/ReportFile.php=0a766e94902b5473ef1fa24583cf2481
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Modules/Admin/Api/ModulesActionManager.php=c4d592d8930201a883a5d1ea71a037af
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Model/IceEmail.php=02bd3cd01cb37ab05d763e468cba3835
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/Admin/Api/ReportBuilderInterface.php=dd7e723c48ec4f97db98ffec0d0f39cb
|
|
||||||
/Users/Thilina/Projects/icehrm/src/TimeSheets/User/Api/TimeSheetsModulesManager.php=63a8c4364cd579be46b60a2e83f8f87f
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Employees/Common/Model/ArchivedEmployee.php=6056e5073538c0d7a22dea52b6c25374
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/Admin/Api/ReportBuilder.php=9b0e8e996157caebcf17a2a342ba0f6e
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Users/Common/Model/UserRole.php=8d7dbcdf68c2c5a7a4d4f73dbb07d63b
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Salary/Common/Model/PayFrequency.php=fab16310b7db7bb9aace5a6b038c9d2a
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Model/Notification.php=0b06b249e456508d5a8ce06b453efe6b
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Attendance/Admin/Api/AttendanceDashboardManager.php=c08fc7c021dd0c0780851c308225291f
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/User/Reports/TravelRequestReport.php=810d405042307fe9c6ca82e082c3673e
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Attendance/Common/Model/Attendance.php=aa0945e6fc70e6e3418d0e09f7110082
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Employees/Common/Model/EmploymentStatus.php=11365db49528f08847e0dfbf1b31472d
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Attendance/Admin/Api/AttendanceAdminManager.php=21e4a22a3eb290704181e5a4a7a5df7a
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/HistoryManager.php=4741dd856bb81ec2e27bd016afb8e042
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Dashboard/Admin/Api/DashboardAdminManager.php=800b72969de1b8c311a8e1b7d2940c79
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Overtime/User/Api/OvertimeModulesManager.php=b29d52a4e3f021cdd786f41cbf1b9837
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/User/Reports/OvertimeSummaryReport.php=3918d7210957040977b8a43c580abae0
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Classes/ModuleBuilder/ModuleTab.php=89136363d7520967c2d42e175052f4d5
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Reports/Admin/Api/CSVReportBuilder.php=5c5f7175cc2aff776388c3281cea9cf3
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Model/Setting.php=5b9440e9211662f5ed69f29794b6054d
|
|
||||||
/Users/Thilina/Projects/icehrm/src/FieldNames/Common/Model/CustomField.php=88578da07f1f07bae868e17b4a8e4cf7
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Attendance/User/Api/AttendanceActionManager.php=feaa97dd192e7faec2045aba7dc03125
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Overtime/Common/Model/OvertimeCategory.php=e9c90b23155e3fe1c7d9dd9cef462d1e
|
|
||||||
/Users/Thilina/Projects/icehrm/src/Attendance/Common/Calculations/CaliforniaOvertimeCalculator.php=a1a5ff46939030747f505710fbd49ffd
|
|
||||||
@@ -1,31 +1,16 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
This file is part of iCE Hrm.
|
Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de)
|
||||||
|
Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah)
|
||||||
iCE Hrm is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
iCE Hrm is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
------------------------------------------------------------------
|
|
||||||
|
|
||||||
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
|
|
||||||
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$moduleName = 'attendance_monitor';
|
$moduleName = 'attendance';
|
||||||
|
$moduleGroup = 'admin';
|
||||||
define('MODULE_PATH',dirname(__FILE__));
|
define('MODULE_PATH',dirname(__FILE__));
|
||||||
include APP_BASE_PATH.'header.php';
|
include APP_BASE_PATH.'header.php';
|
||||||
include APP_BASE_PATH.'modulejslibs.inc.php';
|
include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||||
$photoAttendance = \Classes\SettingsManager::getInstance()->getSetting('Attendance: Photo Attendance');
|
$photoAttendance = \Classes\SettingsManager::getInstance()->getSetting('Attendance: Photo Attendance');
|
||||||
|
$mapAttendance = \Classes\SettingsManager::getInstance()->getSetting('Attendance: Request Attendance Location on Mobile');
|
||||||
?><div class="span9">
|
?><div class="span9">
|
||||||
|
|
||||||
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
|
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
|
||||||
@@ -65,18 +50,41 @@ $photoAttendance = \Classes\SettingsManager::getInstance()->getSetting('Attendan
|
|||||||
<div class="row" style="background: #f3f4f5; padding: 10px;text-align: center;">
|
<div class="row" style="background: #f3f4f5; padding: 10px;text-align: center;">
|
||||||
<h4 id="attendnaceCanvasEmp"></h4>
|
<h4 id="attendnaceCanvasEmp"></h4>
|
||||||
</div>
|
</div>
|
||||||
<div class="row" style="background: #f3f4f5; padding: 10px;">
|
<div class="row" style="background: #f3f4f5; padding: 10px;">
|
||||||
<div class="col-sm-6" style="text-align: center;">
|
<div id="attendnaceCanvasPunchInTimeWraper" class="col-sm-6" style="text-align: center;">
|
||||||
<canvas id="attendnaceCanvasIn" height="156" width="208" style="border: 1px #222 dotted;"></canvas>
|
<b>In: </b><span id="attendnaceCanvasPunchInTime"></span>
|
||||||
<hr/>
|
<br/>
|
||||||
<span id="attendnaceCanvasPunchInTime"></span>
|
IP Address: <span id="punchInIp"></span>
|
||||||
|
</div>
|
||||||
|
<div id="attendnaceCanvasPunchOutTimeWrapper" class="col-sm-6" style="text-align: center;">
|
||||||
|
<b>Out: </b><span id="attendnaceCanvasPunchOutTime"></span>
|
||||||
|
<br/>
|
||||||
|
IP Address: <span id="punchOutIp"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="attendancePhoto" class="row" style="background: #f3f4f5; padding: 10px;display:none;">
|
||||||
|
<div id="attendnaceCanvasInWrapper" class="col-sm-6" style="text-align: center;">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-6" style="text-align: center;">
|
<div id="attendnaceCanvasOutWrapper" class="col-sm-6" style="text-align: center;">
|
||||||
<canvas id="attendnaceCanvasOut" height="156" width="208" style="border: 1px #222 dotted;"></canvas>
|
|
||||||
<hr/>
|
|
||||||
<span id="attendnaceCanvasPunchOutTime"></span>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="attendanceMap" class="row" style="background: #f3f4f5; padding: 10px;display:none;">
|
||||||
|
<div id="attendnaceMapCanvasInWrapper" class="col-sm-6" style="text-align: center;">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div id="attendnaceMapCanvasOutWrapper" class="col-sm-6" style="text-align: center;">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-6" style="text-align: center;">
|
||||||
|
<span>Location: <span id="punchInLocation"></span></span>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-6" style="text-align: center;">
|
||||||
|
<span>Location: <span id="punchOutLocation"></span></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
|
|
||||||
@@ -88,7 +96,7 @@ $photoAttendance = \Classes\SettingsManager::getInstance()->getSetting('Attendan
|
|||||||
var modJsList = new Array();
|
var modJsList = new Array();
|
||||||
modJsList['tabAttendance'] = new AttendanceAdapter('Attendance','Attendance','','in_time desc');
|
modJsList['tabAttendance'] = new AttendanceAdapter('Attendance','Attendance','','in_time desc');
|
||||||
modJsList['tabAttendance'].setRemoteTable(true);
|
modJsList['tabAttendance'].setRemoteTable(true);
|
||||||
modJsList['tabAttendance'].setPhotoAttendance(<?=$photoAttendance == '1'?>);
|
modJsList['tabAttendance'].setPhotoAttendance(<?=$photoAttendance == '1' || $mapAttendance == '1'?>);
|
||||||
modJsList['tabAttendanceStatus'] = new AttendanceStatusAdapter('AttendanceStatus','AttendanceStatus','','');
|
modJsList['tabAttendanceStatus'] = new AttendanceStatusAdapter('AttendanceStatus','AttendanceStatus','','');
|
||||||
modJsList['tabAttendanceStatus'].setShowAddNew(false);
|
modJsList['tabAttendanceStatus'].setShowAddNew(false);
|
||||||
var modJs = modJsList['tabAttendance'];
|
var modJs = modJsList['tabAttendance'];
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"label": "Monitor Attendance",
|
"label": "Monitor Attendance",
|
||||||
"menu": "Employees",
|
"menu": "Employees",
|
||||||
"order": "8",
|
"order": "8",
|
||||||
"icon": "fa-clock-o",
|
"icon": "fa-clock",
|
||||||
"user_levels": [
|
"user_levels": [
|
||||||
"Admin",
|
"Admin",
|
||||||
"Manager"
|
"Manager"
|
||||||
|
|||||||
44
core/admin/charts/LICENSE.txt
Normal file
44
core/admin/charts/LICENSE.txt
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
ICEHRM END USER LICENSE AGREEMENT
|
||||||
|
NOTICE TO ALL USERS: BY PURCHASING THE MODULE, YOU (EITHER AN INDIVIDUAL OR A SINGLE ENTITY) CONSENT TO BE BOUND BY AND BECOME A PARTY TO THIS AGREEMENT.
|
||||||
|
|
||||||
|
All references to "Software" herein shall be deemed to include the software license with which you will be provided by Gamonoid Media Pvt Ltd, as part of the Software.
|
||||||
|
|
||||||
|
1. LICENSE GRANT. Subject to the payment of the applicable licence fees, and subject to the terms and conditions of this Agreement, ICEHRM hereby grants to you a non-exclusive, non-transferable right to use one copy of the specified version of the Software and the accompanying documentation (the "Documentation") for the term of this Agreement solely for your own internal business purposes. You may install one copy of the Software for production use.
|
||||||
|
.
|
||||||
|
2. USE. The Software is licensed as a single product; it may not be used on more than one ICEHRM Server at a time. The Software is "in use" on a Server when its installed on a Server. You shall not, nor permit any third party to copy (other than as expressly permitted herein). You shall not rent, lease or lend the Software to any other person, nor transfer or sub-licence your licence rights to any other person.
|
||||||
|
|
||||||
|
3. TERM. This Agreement is effective until terminated as set forth herein. This Agreement will terminate automatically if you fail to comply with any of the conditions, limitations or other requirements described herein. Upon any termination of this Agreement, you must immediately destroy all copies of the Software and the Documentation. You may terminate this Agreement at any point by destroying all copies of the Software and the Documentation.
|
||||||
|
|
||||||
|
4. SUPPORT. Gamonoid Media Pvt Ltd will provide you support according to the support agreement subscribed by the company.
|
||||||
|
|
||||||
|
5. OWNERSHIP RIGHTS. The Software is protected by copyright laws. ICEHRM and Gamonoid Media Pvt Ltd own and retain all right, title and interest in and to the Software, including all copyrights, patents, trademarks and other intellectual property rights therein. Your possession, installation, or use of the Software does not transfer to you any title to the intellectual property in the Software, and you will not acquire any rights to the Software except as expressly set forth in this Agreement.
|
||||||
|
|
||||||
|
6. LIMITED WARRANTY. You may not rent, lease, loan or resell the Software. You may not permit third parties to benefit from the use or functionality of the Software via a timesharing, service bureau or other arrangement, except to the extent such use is specified in the applicable list price or product packaging for the Software. You may not transfer any of the rights granted to you under this Agreement. You may not modify, or create derivative works based upon, the Software in whole or in part. You may not copy the Software or Documentation except as expressly permitted in Section 1 above. You may not remove any proprietary notices or labels on the Software. All rights not expressly set forth hereunder are reserved by ICEHRM. ICEHRM reserves the right to periodically conduct audits upon advance written notice to verify compliance with the terms of this Agreement.
|
||||||
|
|
||||||
|
7. WARRANTY and DISCLAIMER.
|
||||||
|
|
||||||
|
(i) Gamonoid Media Pvt Ltd. warrants that for 30 days from first download or installation the Software will perform substantially in accordance with the functionality described in the Documentation (http://blog.icehrm.com) when operated properly and in the manner specified in the Documentation.
|
||||||
|
|
||||||
|
(ii) You accept all responsibility for the selection of this Software to meet your requirements.
|
||||||
|
|
||||||
|
(iii) Gamonoid Media Pvt Ltd. does not warrant that the Software and/or the Documentation will be suitable for such requirements nor that any use will be uninterrupted and error free.
|
||||||
|
|
||||||
|
(iv) The warranty in (i) shall not apply if you (a) make or cause to be made any modifications to this Software, (b) use the Software in a manner for which it was not intended or (c) use the Software other than as permitted under this Agreement.
|
||||||
|
|
||||||
|
(vii) The warranties and conditions stated in this Agreement are in lieu of all other conditions, warranties or other terms concerning the supply or purported supply of, failure to supply or delay in supplying the Software or the Documentation which might but for this paragraph (vii) have effect between the ICEHRM and you or would otherwise be implied into or incorporated into this Agreement or any collateral contract, whether by statute, common law or otherwise, all of which are hereby excluded (including, without limitation, the implied conditions, warranties or other terms as to satisfactory quality, fitness for purpose or as to the use of reasonable skill and care).
|
||||||
|
|
||||||
|
8. LIMITATION of LIABILITY. Gamonoid Media Pvt Ltd. shall have no liability (whether in contract, tort, restitution or otherwise) for any of the following losses or damage (whether such losses or damage were foreseen, foreseeable, known or otherwise):
|
||||||
|
- Loss of revenue;
|
||||||
|
- Loss of actual or anticipated profits (including for loss of profits on contracts);
|
||||||
|
- Loss of the use of money;
|
||||||
|
- Loss of anticipated savings;
|
||||||
|
- Loss of business;
|
||||||
|
- Loss of opportunity;
|
||||||
|
- Loss of goodwill;
|
||||||
|
- Loss of reputation;
|
||||||
|
- Loss of, damage to or corruption of data;
|
||||||
|
or
|
||||||
|
Any indirect or consequential loss or damage howsoever caused (including, for the avoidance of doubt, where such loss or damage is of the type specified in paragraph (ii), (a) to (ii), (i).
|
||||||
|
The ICEHRM liability (whether in contract, tort, restitution or otherwise) arising out of or in connection with the supply of the Software shall in no circumstances exceed a sum equal to the amount equally paid by you for the Software.
|
||||||
|
The construction and interpretation of this Agreement shall be governed in accordance with the laws of Sri Lanka. The parties hereby submit to the jurisdiction of the courts of Sri Lanka save that ICEHRM as claimant shall be entitled to initiate proceedings in any court of competent jurisdiction.
|
||||||
|
This Agreement contains the entire understanding of the parties with respect to the subject matter hereof and supersedes all and any prior understandings, undertakings and promises between you and ICEHRM, whether oral or in writing, which have been given or may be implied from anything written or said in negotiations between us or our representatives prior to this Agreement and all prior agreements between the parties relating to the matters aforesaid shall cease to have effect as from the Effective Date.
|
||||||
7
core/admin/charts/README.txt
Normal file
7
core/admin/charts/README.txt
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
This module is licensed under IceHrm Commercial License, which can be found in LICENSE.txt.
|
||||||
|
You are allowed to make any modification required to these module, but only allowed to use
|
||||||
|
the module in one production server (even with modifications).
|
||||||
|
|
||||||
|
Installation
|
||||||
|
------------
|
||||||
|
Copy this module into <icehrm path>/admin/ directory
|
||||||
57
core/admin/charts/index.php
Normal file
57
core/admin/charts/index.php
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
$moduleName = 'charts';
|
||||||
|
$moduleGroup = 'admin';
|
||||||
|
define('MODULE_PATH',dirname(__FILE__));
|
||||||
|
include APP_BASE_PATH.'header.php';
|
||||||
|
include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||||
|
?>
|
||||||
|
|
||||||
|
<link href="<?=BASE_URL.'js/nvd3/src/nv.d3.css?v='.$jsVersion?>" rel="stylesheet" type="text/css">
|
||||||
|
|
||||||
|
<script src="<?=BASE_URL.'js/nvd3/lib/d3.v3.js?v='.$jsVersion?>"></script>
|
||||||
|
<script src="<?=BASE_URL.'js/nvd3/nv.d3.js?v='.$jsVersion?>"></script>
|
||||||
|
<script src="<?=BASE_URL.'js/nvd3/src/tooltip.js?v='.$jsVersion?>"></script>
|
||||||
|
<script src="<?=BASE_URL.'js/nvd3/src/utils.js?v='.$jsVersion?>"></script>
|
||||||
|
<script src="<?=BASE_URL.'js/nvd3/src/models/legend.js?v='.$jsVersion?>"></script>
|
||||||
|
<script src="<?=BASE_URL.'js/nvd3/src/models/axis.js?v='.$jsVersion?>"></script>
|
||||||
|
<script src="<?=BASE_URL.'js/nvd3/src/models/multiBar.js?v='.$jsVersion?>"></script>
|
||||||
|
<script src="<?=BASE_URL.'js/nvd3/src/models/discreteBar.js?v='.$jsVersion?>"></script>
|
||||||
|
<script src="<?=BASE_URL.'js/nvd3/src/models/discreteBarChart.js?v='.$jsVersion?>"></script>
|
||||||
|
<script src="<?=BASE_URL.'js/nvd3/stream_layers.js?v='.$jsVersion?>"></script>
|
||||||
|
|
||||||
|
<style type="text/css">
|
||||||
|
svg .tooltip { opacity: 1; }
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div class="span9">
|
||||||
|
|
||||||
|
|
||||||
|
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
|
||||||
|
<li class="active"><a id="tabAttendanceGraph" href="#tabPageAttendanceGraph"><?=t('Attendance Graph')?></a></li>
|
||||||
|
<li><a id="tabTimeUtilizationGraph" href="#tabPageTimeUtilizationGraph"><?=t('Hours in Office vs Hours Worked Graph')?></a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="tab-content">
|
||||||
|
<div class="tab-pane active reviewBlock with-3d-shadow with-transitions" id="tabPageAttendanceGraph" style="height: 500px;position: relative;">
|
||||||
|
<svg></svg>
|
||||||
|
</div>
|
||||||
|
<div class="tab-pane reviewBlock with-3d-shadow with-transitions" id="tabPageTimeUtilizationGraph" style="height: 500px;position: relative;">
|
||||||
|
<svg></svg>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
var modJsList = new Array();
|
||||||
|
modJsList['tabAttendanceGraph'] = new AttendanceGraphAdapter('AttendanceGraph');
|
||||||
|
modJsList['tabAttendanceGraph'].setShowAddNew(false);
|
||||||
|
|
||||||
|
modJsList['tabTimeUtilizationGraph'] = new TimeUtilizationGraphAdapter('TimeUtilizationGraph');
|
||||||
|
modJsList['tabTimeUtilizationGraph'].setShowAddNew(false);
|
||||||
|
|
||||||
|
var modJs = modJsList['tabAttendanceGraph'];
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<?php include APP_BASE_PATH.'footer.php';?>
|
||||||
13
core/admin/charts/meta.json
Normal file
13
core/admin/charts/meta.json
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"label": "Time and Attendance",
|
||||||
|
"menu": "Insights",
|
||||||
|
"order": "1",
|
||||||
|
"icon": "fa-user-clock",
|
||||||
|
"user_levels": [
|
||||||
|
"Admin",
|
||||||
|
"Manager"
|
||||||
|
],
|
||||||
|
"permissions": [],
|
||||||
|
"model_namespace": "\\Charts\\Common\\Model",
|
||||||
|
"manager": "\\Charts\\Admin\\Api\\ChartsAdminManager"
|
||||||
|
}
|
||||||
51
core/admin/clients/index.php
Normal file
51
core/admin/clients/index.php
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
Copyright (c) 2020 [Glacies UG, Berlin, Germany] (http://glacies.de)
|
||||||
|
Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah)
|
||||||
|
*/
|
||||||
|
|
||||||
|
$moduleName = 'clients';
|
||||||
|
$moduleGroup = 'admin';
|
||||||
|
define('MODULE_PATH',dirname(__FILE__));
|
||||||
|
include APP_BASE_PATH.'header.php';
|
||||||
|
include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||||
|
?><div class="span9">
|
||||||
|
|
||||||
|
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
|
||||||
|
<li class="active"><a id="tabClient" href="#tabPageClient"><?=t('Clients')?></a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="tab-content">
|
||||||
|
<div class="tab-pane active" id="tabPageClient">
|
||||||
|
<div id="Client" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div id="ClientForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
var modJsList = [];
|
||||||
|
|
||||||
|
modJsList['tabClient'] = new ClientAdapter('Client','Client');
|
||||||
|
|
||||||
|
<?php if(isset($modulePermissions['perm']['Add Clients']) && $modulePermissions['perm']['Add Clients'] == "No"){?>
|
||||||
|
modJsList['tabClient'].setShowAddNew(false);
|
||||||
|
<?php }?>
|
||||||
|
|
||||||
|
<?php if(isset($modulePermissions['perm']['Delete Clients']) && $modulePermissions['perm']['Delete Clients'] == "No"){?>
|
||||||
|
modJsList['tabClient'].setShowDelete(false);
|
||||||
|
<?php }?>
|
||||||
|
|
||||||
|
<?php if(isset($modulePermissions['perm']['Edit Clients']) && $modulePermissions['perm']['Edit Clients'] == "No"){?>
|
||||||
|
modJsList['tabClient'].setShowSave(false);
|
||||||
|
<?php }?>
|
||||||
|
|
||||||
|
|
||||||
|
var modJs = modJsList['tabClient'];
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<?php include APP_BASE_PATH.'footer.php';?>
|
||||||
20
core/admin/clients/meta.json
Normal file
20
core/admin/clients/meta.json
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"label": "Clients",
|
||||||
|
"menu": "Admin",
|
||||||
|
"order": "52",
|
||||||
|
"icon": "fa-user-circle",
|
||||||
|
"user_levels": [
|
||||||
|
"Admin",
|
||||||
|
"Manager"
|
||||||
|
],
|
||||||
|
"dashboardPosition": 4,
|
||||||
|
"permissions": {
|
||||||
|
"Manager": {
|
||||||
|
"Add Clients": "Yes",
|
||||||
|
"Edit Clients": "Yes",
|
||||||
|
"Delete Clients": "No"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"model_namespace": "\\Clients\\Common\\Model",
|
||||||
|
"manager": "\\Clients\\Admin\\Api\\ClientsAdminManager"
|
||||||
|
}
|
||||||
@@ -1,27 +1,14 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
This file is part of iCE Hrm.
|
Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de)
|
||||||
|
Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah)
|
||||||
iCE Hrm is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
iCE Hrm is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
------------------------------------------------------------------
|
|
||||||
|
|
||||||
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
|
|
||||||
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
use Classes\PermissionManager;
|
||||||
|
use Company\Common\Model\CompanyStructure;
|
||||||
|
|
||||||
$moduleName = 'company_structure';
|
$moduleName = 'company_structure';
|
||||||
|
$moduleGroup = 'admin';
|
||||||
define('MODULE_PATH',dirname(__FILE__));
|
define('MODULE_PATH',dirname(__FILE__));
|
||||||
include APP_BASE_PATH.'header.php';
|
include APP_BASE_PATH.'header.php';
|
||||||
include APP_BASE_PATH.'modulejslibs.inc.php';
|
include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||||
@@ -57,15 +44,12 @@ path.link {
|
|||||||
<li class="active"><a id="tabCompanyStructure" href="#tabPageCompanyStructure"><?=t('Company Structure')?></a></li>
|
<li class="active"><a id="tabCompanyStructure" href="#tabPageCompanyStructure"><?=t('Company Structure')?></a></li>
|
||||||
<li><a id="tabCompanyGraph" href="#tabPageCompanyGraph"><?=t('Company Graph')?></a></li>
|
<li><a id="tabCompanyGraph" href="#tabPageCompanyGraph"><?=t('Company Graph')?></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="tab-content">
|
<div class="tab-content">
|
||||||
<div class="tab-pane active" id="tabPageCompanyStructure">
|
<div class="tab-pane active" id="tabPageCompanyStructure">
|
||||||
<div id="CompanyStructure" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
<div id="CompanyStructureTable" class="reviewBlock" data-content="List" style="padding-left:5px;"></div>
|
||||||
|
<div id="CompanyStructureForm"></div>
|
||||||
</div>
|
<div id="CompanyStructureFilterForm"></div>
|
||||||
<div id="CompanyStructureForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane reviewBlock" id="tabPageCompanyGraph" style="overflow-x: scroll;">
|
<div class="tab-pane reviewBlock" id="tabPageCompanyGraph" style="overflow-x: scroll;">
|
||||||
|
|
||||||
@@ -73,24 +57,15 @@ path.link {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
<?php
|
||||||
|
$moduleData = [
|
||||||
|
'user_level' => $user->user_level,
|
||||||
|
'permissions' => [
|
||||||
|
'CompanyStructure' => PermissionManager::checkGeneralAccess(new CompanyStructure()),
|
||||||
|
]
|
||||||
|
];
|
||||||
|
?>
|
||||||
<script>
|
<script>
|
||||||
var modJsList = new Array();
|
initAdminCompanyStructure(<?=json_encode($moduleData)?>);
|
||||||
modJsList['tabCompanyStructure'] = new CompanyStructureAdapter('CompanyStructure');
|
|
||||||
|
|
||||||
<?php if(isset($modulePermissions['perm']['Add Company Structure']) && $modulePermissions['perm']['Add Company Structure'] == "No"){?>
|
|
||||||
modJsList['tabCompanyStructure'].setShowAddNew(false);
|
|
||||||
<?php }?>
|
|
||||||
<?php if(isset($modulePermissions['perm']['Delete Company Structure']) && $modulePermissions['perm']['Delete Company Structure'] == "No"){?>
|
|
||||||
modJsList['tabCompanyStructure'].setShowDelete(false);
|
|
||||||
<?php }?>
|
|
||||||
<?php if(isset($modulePermissions['perm']['Edit Company Structure']) && $modulePermissions['perm']['Edit Company Structure'] == "No"){?>
|
|
||||||
modJsList['tabCompanyStructure'].setShowEdit(false);
|
|
||||||
<?php }?>
|
|
||||||
|
|
||||||
|
|
||||||
modJsList['tabCompanyGraph'] = new CompanyGraphAdapter('CompanyStructure');
|
|
||||||
|
|
||||||
var modJs = modJsList['tabCompanyStructure'];
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<?php include APP_BASE_PATH.'footer.php';?>
|
<?php include APP_BASE_PATH.'footer.php';?>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"label":"Company Structure",
|
"label":"Company Structure",
|
||||||
"menu":"Admin",
|
"menu":"Admin",
|
||||||
"order":"2",
|
"order":"2",
|
||||||
"icon":"fa-building-o",
|
"icon":"fa-building",
|
||||||
"user_levels":["Admin","Manager"],
|
"user_levels":["Admin","Manager"],
|
||||||
"dashboardPosition":2,
|
"dashboardPosition":2,
|
||||||
|
|
||||||
|
|||||||
@@ -1,121 +1,88 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
This file is part of iCE Hrm.
|
Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de)
|
||||||
|
Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah)
|
||||||
iCE Hrm is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
iCE Hrm is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
------------------------------------------------------------------
|
|
||||||
|
|
||||||
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
|
|
||||||
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
use Classes\BaseService;
|
||||||
|
use Classes\LanguageManager;
|
||||||
|
|
||||||
$moduleName = 'dashboard';
|
$moduleName = 'dashboard';
|
||||||
|
$moduleGroup = 'admin';
|
||||||
define('MODULE_PATH',dirname(__FILE__));
|
define('MODULE_PATH',dirname(__FILE__));
|
||||||
include APP_BASE_PATH.'header.php';
|
include APP_BASE_PATH.'header.php';
|
||||||
include APP_BASE_PATH.'modulejslibs.inc.php';
|
include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||||
|
|
||||||
$invoices = [];
|
$moduleManagers = BaseService::getInstance()->getModuleManagers();
|
||||||
$numOfUnpaidInvoices = 0;
|
$dashBoardList = array();
|
||||||
if (class_exists('\\Billing\\Admin\\Api\\BillingActionManager')) {
|
foreach($moduleManagers as $moduleManagerObj){
|
||||||
$billingActionManager = new \Billing\Admin\Api\BillingActionManager();
|
|
||||||
|
|
||||||
$invoices = $billingActionManager->getInvoices(null)->getData();
|
//Check if this is not an admin module
|
||||||
if(!empty($invoices)){
|
if($moduleManagerObj->getModuleType() != 'admin'){
|
||||||
$invoices = json_decode(json_encode($invoices));
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach($invoices as $inv){
|
$allowed = BaseService::getInstance()->isModuleAllowedForUser($moduleManagerObj);
|
||||||
if($inv->status == "Sent"){
|
|
||||||
$numOfUnpaidInvoices++;
|
if(!$allowed){
|
||||||
}
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$item = $moduleManagerObj->getDashboardItem();
|
||||||
|
if(!empty($item)) {
|
||||||
|
$index = $moduleManagerObj->getDashboardItemIndex();
|
||||||
|
$dashBoardList[$index] = $item;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ksort($dashBoardList);
|
||||||
|
|
||||||
|
$dashboardList1 =[];
|
||||||
|
$dashboardList2 =[];
|
||||||
|
foreach($dashBoardList as $k=>$v){
|
||||||
|
if (count($dashboardList1) === 4 ) {
|
||||||
|
$dashboardList2[] = $v;
|
||||||
|
} else {
|
||||||
|
$dashboardList1[] = $v;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
?><div class="span9">
|
?><div class="span9">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<?php if($numOfUnpaidInvoices == 1){?>
|
|
||||||
<div class="callout callout-warning lead" style="font-size: 14px;">
|
|
||||||
<h4>You have a pending invoice</h4>
|
|
||||||
<p style="font-weight: bold;">
|
|
||||||
You have a pending invoice. Please make you complete the payment so we can provide a better service.
|
|
||||||
<br/>
|
|
||||||
<br/>
|
|
||||||
<a href="<?=CLIENT_BASE_URL?>?g=admin&n=billing&m=admin_System#tabInvoice" class="btn btn-success btm-xs"><i class="fa fa-checkout"></i> Make a Payment</a>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<?php }else if($numOfUnpaidInvoices > 1){?>
|
|
||||||
<div class="callout callout-danger lead" style="font-size: 14px;">
|
|
||||||
<h4>You have <?=$numOfUnpaidInvoices?> pending invoices</h4>
|
|
||||||
<p style="font-weight: bold;">
|
|
||||||
You have <?=$numOfUnpaidInvoices?> pending invoice. None of your employees are currently allowed to login. Please make sure you complete payments to all the invoices to restore your service.
|
|
||||||
Please logout and login after completing the payment to get your service restored.
|
|
||||||
<br/>
|
|
||||||
<br/>
|
|
||||||
<a href="<?=CLIENT_BASE_URL?>?g=admin&n=billing&m=admin_System#tabInvoice" class="btn btn-success btm-xs"><i class="fa fa-checkout"></i> Make a Payment</a>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<?php }?>
|
|
||||||
|
|
||||||
<?php if(\Utils\SessionUtils::getSessionObject('account_locked') == "1"){?>
|
|
||||||
<div class="callout callout-danger lead" style="font-size: 14px;">
|
|
||||||
<h4>Your Trial Has Expired</h4>
|
|
||||||
<p style="font-weight: bold;">
|
|
||||||
Your Icehrm Trial has expired. Please upgrade subscription to continue. If not upgraded your account will be deleted with in few days.
|
|
||||||
<br/>
|
|
||||||
<br/>
|
|
||||||
<a href="<?=CLIENT_BASE_URL?>?g=admin&n=billing&m=admin_System" class="btn btn-success btm-xs"><i class="fa fa-checkout"></i> Upgrade Subscription</a>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<?php }?>
|
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
$moduleManagers = \Classes\BaseService::getInstance()->getModuleManagers();
|
foreach($dashboardList1 as $v){
|
||||||
$dashBoardList = array();
|
echo LanguageManager::translateTnrText($v);
|
||||||
foreach($moduleManagers as $moduleManagerObj){
|
|
||||||
|
|
||||||
//Check if this is not an admin module
|
|
||||||
if($moduleManagerObj->getModuleType() != 'admin'){
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$allowed = \Classes\BaseService::getInstance()->isModuleAllowedForUser($moduleManagerObj);
|
|
||||||
|
|
||||||
if(!$allowed){
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$item = $moduleManagerObj->getDashboardItem();
|
|
||||||
if(!empty($item)) {
|
|
||||||
$index = $moduleManagerObj->getDashboardItemIndex();
|
|
||||||
$dashBoardList[$index] = $item;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
?>
|
||||||
ksort($dashBoardList);
|
</div>
|
||||||
|
<div class="row">
|
||||||
foreach($dashBoardList as $k=>$v){
|
<div class="col-lg-4 col-xs-12">
|
||||||
echo \Classes\LanguageManager::translateTnrText($v);
|
<div id="EmployeeOnlineOfflineChartLoader" style="width:100%;"></div>
|
||||||
|
<div id="EmployeeOnlineOfflineChart" style="display:none;box-shadow: 0 1px 3px rgba(0,0,0,.12), 0 1px 2px rgba(0,0,0,.24);border: none;margin-bottom: 20px;"></div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-4 col-xs-12">
|
||||||
|
<div id="EmployeeDistributionChartLoader" style="width:100%;"></div>
|
||||||
|
<div id="EmployeeDistributionChart" style="display:none;box-shadow: 0 1px 3px rgba(0,0,0,.12), 0 1px 2px rgba(0,0,0,.24);border: none;margin-bottom: 20px;"></div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-4 col-xs-12">
|
||||||
|
<div id="TaskListLoader" style="width:100%;"></div>
|
||||||
|
<div id="TaskListWrap" style="display: none;box-shadow: 0 1px 3px rgba(0,0,0,.12), 0 1px 2px rgba(0,0,0,.24);border: none;margin-bottom: 20px; padding:25px;">
|
||||||
|
<h4>Tasks to Attend</h4>
|
||||||
|
<div id="TaskList" style="margin-left: 10px; margin-top: 30px;"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<?php
|
||||||
|
foreach($dashboardList2 as $v){
|
||||||
|
echo LanguageManager::translateTnrText($v);
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
var modJsList = new Array();
|
var modJsList = [];
|
||||||
|
|
||||||
modJsList['tabDashboard'] = new DashboardAdapter('Dashboard','Dashboard');
|
modJsList['tabDashboard'] = new DashboardAdapter('Dashboard','Dashboard');
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
$moduleName = 'data';
|
$moduleName = 'data';
|
||||||
|
$moduleGroup = 'admin';
|
||||||
define('MODULE_PATH',dirname(__FILE__));
|
define('MODULE_PATH',dirname(__FILE__));
|
||||||
include APP_BASE_PATH.'header.php';
|
include APP_BASE_PATH.'header.php';
|
||||||
include APP_BASE_PATH.'modulejslibs.inc.php';
|
include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||||
|
|||||||
19
core/admin/documents/dashboard.html
Normal file
19
core/admin/documents/dashboard.html
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<div class="col-lg-3 col-xs-12">
|
||||||
|
|
||||||
|
<div class="small-box bg-green">
|
||||||
|
<div class="inner">
|
||||||
|
<h3>
|
||||||
|
<t>Document</t>
|
||||||
|
</h3>
|
||||||
|
<p id="numberOfDocuments">
|
||||||
|
<t>Management</t>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="icon">
|
||||||
|
<i class="ion ion-document"></i>
|
||||||
|
</div>
|
||||||
|
<a href="#_moduleLink_#" class="small-box-footer" id="documentLink">
|
||||||
|
<t>Manage</t> <t>Documents</t> <i class="fa fa-arrow-circle-right"></i>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
Dear #_employee_#,<br/><br/>
|
||||||
|
Following documents listed under your profile will be soon be expired<br/>
|
||||||
|
Please login and take necessary actions.
|
||||||
|
<br/>
|
||||||
|
<hr/>
|
||||||
|
#_documents_#
|
||||||
|
IceHrm Url: <a href="#_url_#">#_url_#</a>
|
||||||
|
<br/>
|
||||||
66
core/admin/documents/index.php
Normal file
66
core/admin/documents/index.php
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de)
|
||||||
|
Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah)
|
||||||
|
*/
|
||||||
|
|
||||||
|
$moduleName = 'documents';
|
||||||
|
$moduleGroup = 'admin';
|
||||||
|
define('MODULE_PATH',dirname(__FILE__));
|
||||||
|
include APP_BASE_PATH.'header.php';
|
||||||
|
include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||||
|
$activeStr = '';
|
||||||
|
if($user->user_level == "Manager"){
|
||||||
|
$activeStr = 'active';
|
||||||
|
}
|
||||||
|
|
||||||
|
$moduleBuilder = new \Classes\ModuleBuilder\ModuleBuilder();
|
||||||
|
if($user->user_level == "Admin") {
|
||||||
|
$moduleBuilder->addModuleOrGroup(new \Classes\ModuleBuilder\ModuleTab(
|
||||||
|
'CompanyDocument',
|
||||||
|
'CompanyDocument',
|
||||||
|
'Company Documents',
|
||||||
|
'CompanyDocumentAdapter',
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
true
|
||||||
|
));
|
||||||
|
$moduleBuilder->addModuleOrGroup(new \Classes\ModuleBuilder\ModuleTab(
|
||||||
|
'Document',
|
||||||
|
'Document',
|
||||||
|
'Document Types',
|
||||||
|
'DocumentAdapter',
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
false
|
||||||
|
));
|
||||||
|
$options1 = array();
|
||||||
|
$options1['setRemoteTable'] = 'true';
|
||||||
|
$moduleBuilder->addModuleOrGroup(new \Classes\ModuleBuilder\ModuleTab(
|
||||||
|
'EmployeeDocument',
|
||||||
|
'EmployeeDocument',
|
||||||
|
'Employee Documents',
|
||||||
|
'EmployeeDocumentAdapter',
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
false,
|
||||||
|
$options1
|
||||||
|
));
|
||||||
|
}else{
|
||||||
|
$options1 = array();
|
||||||
|
$options1['setRemoteTable'] = 'true';
|
||||||
|
$moduleBuilder->addModuleOrGroup(new \Classes\ModuleBuilder\ModuleTab(
|
||||||
|
'EmployeeDocument',
|
||||||
|
'EmployeeDocument',
|
||||||
|
'Employee Documents',
|
||||||
|
'EmployeeDocumentAdapter',
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
($user->user_level != "Admin"),
|
||||||
|
$options1
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
echo \Classes\UIManager::getInstance()->renderModule($moduleBuilder);
|
||||||
|
|
||||||
|
include APP_BASE_PATH.'footer.php';
|
||||||
14
core/admin/documents/meta.json
Normal file
14
core/admin/documents/meta.json
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"label": "Document Management",
|
||||||
|
"menu": "Employees",
|
||||||
|
"order": "2",
|
||||||
|
"icon": "fa-file-alt",
|
||||||
|
"user_levels": [
|
||||||
|
"Admin",
|
||||||
|
"Manager"
|
||||||
|
],
|
||||||
|
"dashboardPosition": 13,
|
||||||
|
"permissions": [],
|
||||||
|
"model_namespace": "\\Documents\\Common\\Model",
|
||||||
|
"manager": "\\Documents\\Admin\\Api\\DocumentsAdminManager"
|
||||||
|
}
|
||||||
@@ -159,9 +159,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="row" style="margin-left:10px;margin-top:20px;">
|
||||||
|
<div id="customFieldsCont">
|
||||||
|
|
||||||
<div id="customFieldsCont">
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,16 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
use Classes\PermissionManager;
|
||||||
|
use Dependents\Common\Model\EmployeeDependent;
|
||||||
|
use EmergencyContacts\Common\Model\EmergencyContact;
|
||||||
|
use Employees\Common\Model\Employee;
|
||||||
|
use Qualifications\Common\Model\EmployeeCertification;
|
||||||
|
use Qualifications\Common\Model\EmployeeEducation;
|
||||||
|
use Qualifications\Common\Model\EmployeeLanguage;
|
||||||
|
use Qualifications\Common\Model\EmployeeSkill;
|
||||||
|
|
||||||
$moduleName = 'employees';
|
$moduleName = 'employees';
|
||||||
|
$moduleGroup = 'admin';
|
||||||
define('MODULE_PATH',dirname(__FILE__));
|
define('MODULE_PATH',dirname(__FILE__));
|
||||||
include APP_BASE_PATH.'header.php';
|
include APP_BASE_PATH.'header.php';
|
||||||
include APP_BASE_PATH.'modulejslibs.inc.php';
|
include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||||
@@ -9,139 +19,97 @@ $customFields = \Classes\BaseService::getInstance()->getCustomFields("Employee")
|
|||||||
?><div class="span9">
|
?><div class="span9">
|
||||||
|
|
||||||
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
|
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
|
||||||
<?php if($user->user_level != "Admin"){
|
<li class="active"><a id="tabEmployee" href="#tabPageEmployee"><?=t('Employees')?></a></li>
|
||||||
?>
|
|
||||||
<li class="active"><a id="tabEmployee" href="#tabPageEmployee"><?=t('Employees (Direct Reports)')?></a></li>
|
|
||||||
<?php }else{ ?>
|
|
||||||
<li class="active"><a id="tabEmployee" href="#tabPageEmployee"><?=t('Employees')?></a></li>
|
|
||||||
<?php }?>
|
|
||||||
|
|
||||||
<?php if($user->user_level == "Admin"){
|
|
||||||
?>
|
|
||||||
<li><a id="tabEmployeeSkill" href="#tabPageEmployeeSkill"><?=t('Skills')?></a></li>
|
<li><a id="tabEmployeeSkill" href="#tabPageEmployeeSkill"><?=t('Skills')?></a></li>
|
||||||
<li><a id="tabEmployeeEducation" href="#tabPageEmployeeEducation"><?=t('Education')?></a></li>
|
<li><a id="tabEmployeeEducation" href="#tabPageEmployeeEducation"><?=t('Education')?></a></li>
|
||||||
<li><a id="tabEmployeeCertification" href="#tabPageEmployeeCertification"><?=t('Certifications')?></a></li>
|
<li><a id="tabEmployeeCertification" href="#tabPageEmployeeCertification"><?=t('Certifications')?></a></li>
|
||||||
<li><a id="tabEmployeeLanguage" href="#tabPageEmployeeLanguage"><?=t('Languages')?></a></li>
|
<li><a id="tabEmployeeLanguage" href="#tabPageEmployeeLanguage"><?=t('Languages')?></a></li>
|
||||||
<li><a id="tabEmployeeDependent" href="#tabPageEmployeeDependent"><?=t('Dependents')?></a></li>
|
<li><a id="tabEmployeeDependent" href="#tabPageEmployeeDependent"><?=t('Dependents')?></a></li>
|
||||||
<li><a id="tabEmergencyContact" href="#tabPageEmergencyContact"><?=t('Emergency Contacts')?></a></li>
|
<li><a id="tabEmergencyContact" href="#tabPageEmergencyContact"><?=t('Contacts')?></a></li>
|
||||||
<?php if (class_exists('\\Documents\\Admin\\Api\\DocumentsAdminManager')) {?>
|
<li><a id="tabTerminatedEmployee" href="#tabPageTerminatedEmployee"><?=t('Deactivated')?></a></li>
|
||||||
<li><a id="tabEmployeeDocument" href="#tabPageEmployeeDocument"><?=t('Documents')?></a></li>
|
<li><a id="tabArchivedEmployee" href="#tabPageArchivedEmployee"><?=t('Archived')?></a></li>
|
||||||
<?php } ?>
|
|
||||||
<?php }?>
|
|
||||||
<?php if($user->user_level == "Admin"){
|
|
||||||
?>
|
|
||||||
<li class="dropdown">
|
|
||||||
<a href="#" id="terminatedEmployeeMenu" class="dropdown-toggle" data-toggle="dropdown" aria-controls="terminatedEmployeeMenu-contents"><?=t('Deactivated Employees')?> <span class="caret"></span></a>
|
|
||||||
<ul class="dropdown-menu" role="menu" aria-labelledby="terminatedEmployeeMenu" id="terminatedEmployeeMenu-contents">
|
|
||||||
<li><a id="tabTerminatedEmployee" href="#tabPageTerminatedEmployee"><?=t('Temporarily Deactivated Employees')?></a></li>
|
|
||||||
<li><a id="tabArchivedEmployee" href="#tabPageArchivedEmployee"><?=t('Terminated Employee Data')?></a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<?php }?>
|
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="tab-content">
|
<div class="tab-content">
|
||||||
<div class="tab-pane active" id="tabPageEmployee">
|
<div class="tab-pane active" id="tabPageEmployee">
|
||||||
<div id="Employee" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
<div id="EmployeeTable" class="reviewBlock" data-content="List" style="padding-left:5px;"></div>
|
||||||
|
<div id="EmployeeForm"></div>
|
||||||
</div>
|
<div id="EmployeeFilterForm"></div>
|
||||||
<div id="EmployeeForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane" id="tabPageEmployeeSkill">
|
<div class="tab-pane" id="tabPageEmployeeSkill">
|
||||||
<div id="EmployeeSkill" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
<div id="EmployeeSkillTable" class="reviewBlock" data-content="List" style="padding-left:5px;"></div>
|
||||||
|
<div id="EmployeeSkillForm"></div>
|
||||||
</div>
|
<div id="EmployeeSkillFilterForm"></div>
|
||||||
<div id="EmployeeSkillForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane" id="tabPageEmployeeEducation">
|
<div class="tab-pane" id="tabPageEmployeeEducation">
|
||||||
<div id="EmployeeEducation" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
<div id="EmployeeEducationTable" class="reviewBlock" data-content="List" style="padding-left:5px;"></div>
|
||||||
|
<div id="EmployeeEducationForm"></div>
|
||||||
</div>
|
<div id="EmployeeEducationFilterForm"></div>
|
||||||
<div id="EmployeeEducationForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane" id="tabPageEmployeeCertification">
|
<div class="tab-pane" id="tabPageEmployeeCertification">
|
||||||
<div id="EmployeeCertification" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
<div id="EmployeeCertificationTable" class="reviewBlock" data-content="List" style="padding-left:5px;"></div>
|
||||||
|
<div id="EmployeeCertificationForm"></div>
|
||||||
</div>
|
<div id="EmployeeCertificationFilterForm"></div>
|
||||||
<div id="EmployeeCertificationForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane" id="tabPageEmployeeLanguage">
|
<div class="tab-pane" id="tabPageEmployeeLanguage">
|
||||||
<div id="EmployeeLanguage" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
<div id="EmployeeLanguageTable" class="reviewBlock" data-content="List" style="padding-left:5px;"></div>
|
||||||
|
<div id="EmployeeLanguageForm"></div>
|
||||||
</div>
|
<div id="EmployeeLanguageFilterForm"></div>
|
||||||
<div id="EmployeeLanguageForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane" id="tabPageEmployeeDependent">
|
<div class="tab-pane" id="tabPageEmployeeDependent">
|
||||||
<div id="EmployeeDependent" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
<div id="EmployeeDependentTable" class="reviewBlock" data-content="List" style="padding-left:5px;"></div>
|
||||||
|
<div id="EmployeeDependentForm"></div>
|
||||||
</div>
|
<div id="EmployeeDependentFilterForm"></div>
|
||||||
<div id="EmployeeDependentForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane" id="tabPageEmergencyContact">
|
<div class="tab-pane" id="tabPageEmergencyContact">
|
||||||
<div id="EmergencyContact" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
<div id="EmergencyContactTable" class="reviewBlock" data-content="List" style="padding-left:5px;"></div>
|
||||||
|
<div id="EmergencyContactForm"></div>
|
||||||
</div>
|
<div id="EmergencyContactFilterForm"></div>
|
||||||
<div id="EmergencyContactForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="tab-pane" id="tabPageArchivedEmployee">
|
<div class="tab-pane" id="tabPageArchivedEmployee">
|
||||||
<div id="ArchivedEmployee" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
<div id="ArchivedEmployeeTable" class="reviewBlock" data-content="List" style="padding-left:5px;"></div>
|
||||||
|
<div id="ArchivedEmployeeForm"></div>
|
||||||
</div>
|
<div id="ArchivedEmployeeFilterForm"></div>
|
||||||
<div id="ArchivedEmployeeForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane" id="tabPageTerminatedEmployee">
|
<div class="tab-pane" id="tabPageTerminatedEmployee">
|
||||||
<div id="TerminatedEmployee" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
<div id="TerminatedEmployeeTable" class="reviewBlock" data-content="List" style="padding-left:5px;"></div>
|
||||||
|
<div id="TerminatedEmployeeForm"></div>
|
||||||
</div>
|
<div id="TerminatedEmployeeFilterForm"></div>
|
||||||
<div id="TerminatedEmployeeForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<?php if (class_exists('\\Documents\\Admin\\Api\\DocumentsAdminManager')) {?>
|
|
||||||
<div class="tab-pane" id="tabPageEmployeeDocument">
|
|
||||||
<div id="EmployeeDocument" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div id="EmployeeDocumentForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<?php } ?>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<div id="dataGroup"></div>
|
||||||
var modJsList = new Array();
|
<?php
|
||||||
<?php if($user->user_level != "Admin"){
|
$moduleData = [
|
||||||
|
'user_level' => $user->user_level,
|
||||||
|
'customFields' => $customFields,
|
||||||
|
'permissions' => [
|
||||||
|
'Employee' => PermissionManager::checkGeneralAccess(new Employee()),
|
||||||
|
'EmployeeSkill' => PermissionManager::checkGeneralAccess(new EmployeeSkill()),
|
||||||
|
'EmployeeEducation' => PermissionManager::checkGeneralAccess(new EmployeeEducation()),
|
||||||
|
'EmployeeCertification' => PermissionManager::checkGeneralAccess(new EmployeeCertification()),
|
||||||
|
'EmployeeLanguage' => PermissionManager::checkGeneralAccess(new EmployeeLanguage()),
|
||||||
|
'EmployeeDependent' => PermissionManager::checkGeneralAccess(new EmployeeDependent()),
|
||||||
|
'EmergencyContact' => PermissionManager::checkGeneralAccess(new EmergencyContact()),
|
||||||
|
]];
|
||||||
?>
|
?>
|
||||||
|
<script>
|
||||||
|
var modJsList = [];
|
||||||
|
<?php if($user->user_level != "Admin"){ ?>
|
||||||
modJsList['tabEmployee'] = new EmployeeAdapter('Employee','Employee',{"status":"Active"});
|
modJsList['tabEmployee'] = new EmployeeAdapter('Employee','Employee',{"status":"Active"});
|
||||||
modJsList['tabEmployee'].setShowAddNew(false);
|
modJsList['tabEmployee'].setShowAddNew(false);
|
||||||
<?php
|
modJsList['tabEmployee'].setShowDelete(false);
|
||||||
}else{
|
<?php }else{ ?>
|
||||||
?>
|
|
||||||
modJsList['tabEmployee'] = new EmployeeAdapter('Employee','Employee',{"status":"Active"});
|
modJsList['tabEmployee'] = new EmployeeAdapter('Employee','Employee',{"status":"Active"});
|
||||||
<?php
|
<?php } ?>
|
||||||
}
|
modJsList['tabEmployee'].setObjectTypeName('Employee');
|
||||||
?>
|
modJsList['tabEmployee'].setModalType(EmployeeAdapter.MODAL_TYPE_STEPS);
|
||||||
|
modJsList['tabEmployee'].setDataPipe(new IceDataPipe(modJsList['tabEmployee']));
|
||||||
|
modJsList['tabEmployee'].setAccess(<?=json_encode($moduleData['permissions']['Employee'])?>);
|
||||||
|
modJsList['tabEmployee'].enableLocalStorage();
|
||||||
|
$(document).ready(() => modJsList['tabEmployee'].initForm());
|
||||||
|
|
||||||
modJsList['tabEmployee'].setRemoteTable(true);
|
modJsList['tabEmployee'].setRemoteTable(true);
|
||||||
modJsList['tabEmployee'].setFieldNameMap(<?=json_encode($fieldNameMap)?>);
|
modJsList['tabEmployee'].setFieldNameMap(<?=json_encode($fieldNameMap)?>);
|
||||||
@@ -149,45 +117,66 @@ modJsList['tabEmployee'].setCustomFields(<?=json_encode($customFields)?>);
|
|||||||
|
|
||||||
modJsList['tabEmployeeSkill'] = new EmployeeSkillAdapter('EmployeeSkill');
|
modJsList['tabEmployeeSkill'] = new EmployeeSkillAdapter('EmployeeSkill');
|
||||||
modJsList['tabEmployeeSkill'].setRemoteTable(true);
|
modJsList['tabEmployeeSkill'].setRemoteTable(true);
|
||||||
|
modJsList['tabEmployeeSkill'].setObjectTypeName('Employee Skill');
|
||||||
|
modJsList['tabEmployeeSkill'].setDataPipe(new IceDataPipe(modJsList['tabEmployeeSkill']));
|
||||||
|
modJsList['tabEmployeeSkill'].setAccess(<?=json_encode($moduleData['permissions']['EmployeeSkill'])?>);
|
||||||
|
|
||||||
modJsList['tabEmployeeEducation'] = new EmployeeEducationAdapter('EmployeeEducation');
|
modJsList['tabEmployeeEducation'] = new EmployeeEducationAdapter('EmployeeEducation');
|
||||||
modJsList['tabEmployeeEducation'].setRemoteTable(true);
|
modJsList['tabEmployeeEducation'].setRemoteTable(true);
|
||||||
|
modJsList['tabEmployeeEducation'].setObjectTypeName('Employee Education');
|
||||||
|
modJsList['tabEmployeeEducation'].setDataPipe(new IceDataPipe(modJsList['tabEmployeeEducation']));
|
||||||
|
modJsList['tabEmployeeEducation'].setAccess(<?=json_encode($moduleData['permissions']['EmployeeEducation'])?>);
|
||||||
|
|
||||||
modJsList['tabEmployeeCertification'] = new EmployeeCertificationAdapter('EmployeeCertification');
|
modJsList['tabEmployeeCertification'] = new EmployeeCertificationAdapter('EmployeeCertification');
|
||||||
modJsList['tabEmployeeCertification'].setRemoteTable(true);
|
modJsList['tabEmployeeCertification'].setRemoteTable(true);
|
||||||
|
modJsList['tabEmployeeCertification'].setObjectTypeName('Employee Certification');
|
||||||
|
modJsList['tabEmployeeCertification'].setDataPipe(new IceDataPipe(modJsList['tabEmployeeCertification']));
|
||||||
|
modJsList['tabEmployeeCertification'].setAccess(<?=json_encode($moduleData['permissions']['EmployeeCertification'])?>);
|
||||||
|
|
||||||
modJsList['tabEmployeeLanguage'] = new EmployeeLanguageAdapter('EmployeeLanguage');
|
modJsList['tabEmployeeLanguage'] = new EmployeeLanguageAdapter('EmployeeLanguage');
|
||||||
modJsList['tabEmployeeLanguage'].setRemoteTable(true);
|
modJsList['tabEmployeeLanguage'].setRemoteTable(true);
|
||||||
|
modJsList['tabEmployeeLanguage'].setObjectTypeName('Employee Language');
|
||||||
|
modJsList['tabEmployeeLanguage'].setDataPipe(new IceDataPipe(modJsList['tabEmployeeLanguage']));
|
||||||
|
modJsList['tabEmployeeLanguage'].setAccess(<?=json_encode($moduleData['permissions']['EmployeeLanguage'])?>);
|
||||||
|
|
||||||
modJsList['tabEmployeeDependent'] = new EmployeeDependentAdapter('EmployeeDependent');
|
modJsList['tabEmployeeDependent'] = new EmployeeDependentAdapter('EmployeeDependent');
|
||||||
modJsList['tabEmployeeDependent'].setRemoteTable(true);
|
modJsList['tabEmployeeDependent'].setRemoteTable(true);
|
||||||
|
modJsList['tabEmployeeDependent'].setObjectTypeName('Employee Dependent');
|
||||||
|
modJsList['tabEmployeeDependent'].setDataPipe(new IceDataPipe(modJsList['tabEmployeeDependent']));
|
||||||
|
modJsList['tabEmployeeDependent'].setAccess(<?=json_encode($moduleData['permissions']['EmployeeDependent'])?>);
|
||||||
|
|
||||||
modJsList['tabEmergencyContact'] = new EmergencyContactAdapter('EmergencyContact');
|
modJsList['tabEmergencyContact'] = new EmergencyContactAdapter('EmergencyContact');
|
||||||
modJsList['tabEmergencyContact'].setRemoteTable(true);
|
modJsList['tabEmergencyContact'].setRemoteTable(true);
|
||||||
|
modJsList['tabEmergencyContact'].setObjectTypeName('Emergency Contact');
|
||||||
|
modJsList['tabEmergencyContact'].setDataPipe(new IceDataPipe(modJsList['tabEmergencyContact']));
|
||||||
|
modJsList['tabEmergencyContact'].setAccess(<?=json_encode($moduleData['permissions']['EmergencyContact'])?>);
|
||||||
|
|
||||||
modJsList['tabEmployeeImmigration'] = new EmployeeImmigrationAdapter('EmployeeImmigration');
|
//modJsList['tabEmployeeImmigration'] = new EmployeeImmigrationAdapter('EmployeeImmigration');
|
||||||
modJsList['tabEmployeeImmigration'].setRemoteTable(true);
|
//modJsList['tabEmployeeImmigration'].setRemoteTable(true);
|
||||||
|
//modJsList['tabEmployeeImmigration'].setObjectTypeName('Employee Dependent');
|
||||||
|
//modJsList['tabEmployeeImmigration'].setDataPipe(new IceDataPipe(modJsList['tabEmployeeDependent']));
|
||||||
|
//modJsList['tabEmployeeImmigration'].setAccess(<?//=json_encode($moduleData['permissions']['EmployeeDependent'])?>//);
|
||||||
|
|
||||||
modJsList['tabArchivedEmployee'] = new ArchivedEmployeeAdapter('ArchivedEmployee');
|
modJsList['tabArchivedEmployee'] = new ArchivedEmployeeAdapter('ArchivedEmployee');
|
||||||
modJsList['tabArchivedEmployee'].setRemoteTable(true);
|
modJsList['tabArchivedEmployee'].setRemoteTable(true);
|
||||||
modJsList['tabArchivedEmployee'].setShowAddNew(false);
|
modJsList['tabArchivedEmployee'].setShowAddNew(false);
|
||||||
|
modJsList['tabArchivedEmployee'].setShowEdit(false);
|
||||||
|
modJsList['tabArchivedEmployee'].setObjectTypeName('Archived Employee');
|
||||||
|
modJsList['tabArchivedEmployee'].setDataPipe(new IceDataPipe(modJsList['tabArchivedEmployee']));
|
||||||
|
modJsList['tabArchivedEmployee'].setAccess(<?=json_encode($moduleData['permissions']['Employee'])?>);
|
||||||
|
|
||||||
modJsList['tabTerminatedEmployee'] = new TerminatedEmployeeAdapter('Employee','TerminatedEmployee',{"status":"Terminated"});
|
modJsList['tabTerminatedEmployee'] = new TerminatedEmployeeAdapter('Employee','TerminatedEmployee',{"status":"Terminated"});
|
||||||
modJsList['tabTerminatedEmployee'].setRemoteTable(true);
|
modJsList['tabTerminatedEmployee'].setRemoteTable(true);
|
||||||
modJsList['tabTerminatedEmployee'].setShowAddNew(false);
|
modJsList['tabTerminatedEmployee'].setShowAddNew(false);
|
||||||
|
modJsList['tabTerminatedEmployee'].setShowEdit(false);
|
||||||
|
modJsList['tabTerminatedEmployee'].setObjectTypeName('Deactivated Employees');
|
||||||
|
modJsList['tabTerminatedEmployee'].setDataPipe(new IceDataPipe(modJsList['tabTerminatedEmployee']));
|
||||||
|
modJsList['tabTerminatedEmployee'].setAccess(<?=json_encode($moduleData['permissions']['Employee'])?>);
|
||||||
|
|
||||||
<?php if (class_exists('\\Documents\\Admin\\Api\\DocumentsAdminManager')) {?>
|
|
||||||
modJsList['tabEmployeeDocument'] = new EmployeeDocumentAdapter('EmployeeDocument','EmployeeDocument');
|
|
||||||
modJsList['tabTerminatedEmployee'].setRemoteTable(true);
|
|
||||||
<?php } ?>
|
|
||||||
|
|
||||||
var modJs = modJsList['tabEmployee'];
|
var modJs = modJsList['tabEmployee'];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
<div class="modal" id="createUserModel" tabindex="-1" role="dialog" aria-labelledby="messageModelLabel" aria-hidden="true">
|
<div class="modal" id="createUserModel" tabindex="-1" role="dialog" aria-labelledby="messageModelLabel" aria-hidden="true">
|
||||||
<div class="modal-dialog">
|
<div class="modal-dialog">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
|
|||||||
@@ -1,14 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
This file is part of Ice Framework.
|
Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de)
|
||||||
|
Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah)
|
||||||
------------------------------------------------------------------
|
|
||||||
|
|
||||||
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
|
|
||||||
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$moduleName = 'fieldnames';
|
$moduleName = 'fieldnames';
|
||||||
|
$moduleGroup = 'admin';
|
||||||
define('MODULE_PATH',dirname(__FILE__));
|
define('MODULE_PATH',dirname(__FILE__));
|
||||||
include APP_BASE_PATH.'header.php';
|
include APP_BASE_PATH.'header.php';
|
||||||
include APP_BASE_PATH.'modulejslibs.inc.php';
|
include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"label": "Employee Custom Fields",
|
"label": "Employee Fields",
|
||||||
"menu": "Admin",
|
"menu": "Admin",
|
||||||
"order": "83",
|
"order": "83",
|
||||||
"icon": "fa-sliders",
|
"icon": "fa-ruler-horizontal",
|
||||||
"user_levels": [
|
"user_levels": [
|
||||||
"Admin"
|
"Admin"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1,73 +1,58 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
This file is part of iCE Hrm.
|
Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de)
|
||||||
|
Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah)
|
||||||
iCE Hrm is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
iCE Hrm is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
------------------------------------------------------------------
|
|
||||||
|
|
||||||
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
|
|
||||||
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
use Classes\PermissionManager;
|
||||||
|
use Employees\Common\Model\EmploymentStatus;
|
||||||
|
use Jobs\Common\Model\JobTitle;
|
||||||
|
use Jobs\Common\Model\PayGrade;
|
||||||
|
|
||||||
$moduleName = 'jobs';
|
$moduleName = 'jobs';
|
||||||
|
$moduleGroup = 'admin';
|
||||||
define('MODULE_PATH',dirname(__FILE__));
|
define('MODULE_PATH',dirname(__FILE__));
|
||||||
include APP_BASE_PATH.'header.php';
|
include APP_BASE_PATH.'header.php';
|
||||||
include APP_BASE_PATH.'modulejslibs.inc.php';
|
include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||||
?><div class="span9">
|
?><div class="span9">
|
||||||
|
|
||||||
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
|
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
|
||||||
<li class="active"><a id="tabJobTitles" href="#tabPageJobTitles"><?=t('Job Titles')?></a></li>
|
<li class="active"><a id="tabJobTitle" href="#tabPageJobTitles"><?=t('Job Titles')?></a></li>
|
||||||
<li><a id="tabPayGrades" href="#tabPagePayGrades"><?=t('Pay Grades')?></a></li>
|
<li><a id="tabPayGrade" href="#tabPagePayGrades"><?=t('Pay Grades')?></a></li>
|
||||||
<li><a id="tabEmploymentStatus" href="#tabPageEmploymentStatus"><?=t('Employment Status')?></a></li>
|
<li><a id="tabEmploymentStatus" href="#tabPageEmploymentStatus"><?=t('Employment Status')?></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="tab-content">
|
<div class="tab-content">
|
||||||
<div class="tab-pane active" id="tabPageJobTitles">
|
<div class="tab-pane active" id="tabPageJobTitles">
|
||||||
<div id="JobTitle" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
<div id="JobTitleTable" class="reviewBlock" data-content="List" style="padding-left:5px;"></div>
|
||||||
|
<div id="JobTitleForm"></div>
|
||||||
</div>
|
<div id="JobTitleFilterForm"></div>
|
||||||
<div id="JobTitleForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane" id="tabPagePayGrades">
|
<div class="tab-pane" id="tabPagePayGrades">
|
||||||
<div id="PayGrade" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
<div id="PayGradeTable" class="reviewBlock" data-content="List" style="padding-left:5px;"></div>
|
||||||
|
<div id="PayGradeForm"></div>
|
||||||
</div>
|
<div id="PayGradeFilterForm"></div>
|
||||||
<div id="PayGradeForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane" id="tabPageEmploymentStatus">
|
<div class="tab-pane" id="tabPageEmploymentStatus">
|
||||||
<div id="EmploymentStatus" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
<div id="EmploymentStatusTable" class="reviewBlock" data-content="List" style="padding-left:5px;"></div>
|
||||||
|
<div id="EmploymentStatusForm"></div>
|
||||||
</div>
|
<div id="EmploymentStatusFilterForm"></div>
|
||||||
<div id="EmploymentStatusForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
<div id="dataGroup"></div>
|
||||||
|
<?php
|
||||||
|
$moduleData = [
|
||||||
|
'user_level' => $user->user_level,
|
||||||
|
'permissions' => [
|
||||||
|
'JobTitle' => PermissionManager::checkGeneralAccess(new JobTitle()),
|
||||||
|
'PayGrade' => PermissionManager::checkGeneralAccess(new PayGrade()),
|
||||||
|
'EmploymentStatus' => PermissionManager::checkGeneralAccess(new EmploymentStatus()),
|
||||||
|
]
|
||||||
|
];
|
||||||
|
?>
|
||||||
<script>
|
<script>
|
||||||
var modJsList = new Array();
|
initAdminJobs(<?=json_encode($moduleData)?>);
|
||||||
|
|
||||||
modJsList['tabJobTitles'] = new JobTitleAdapter('JobTitle');
|
|
||||||
modJsList['tabPayGrades'] = new PayGradeAdapter('PayGrade');
|
|
||||||
modJsList['tabEmploymentStatus'] = new EmploymentStatusAdapter('EmploymentStatus');
|
|
||||||
|
|
||||||
var modJs = modJsList['tabJobTitles'];
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<?php include APP_BASE_PATH.'footer.php';?>
|
<?php include APP_BASE_PATH.'footer.php';?>
|
||||||
|
|||||||
@@ -1,52 +1,36 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
This file is part of iCE Hrm.
|
Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de)
|
||||||
|
Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah)
|
||||||
iCE Hrm is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
iCE Hrm is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
------------------------------------------------------------------
|
|
||||||
|
|
||||||
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
|
|
||||||
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$moduleName = 'CompanyLoans';
|
$moduleName = 'loans';
|
||||||
|
$moduleGroup = 'admin';
|
||||||
define('MODULE_PATH',dirname(__FILE__));
|
define('MODULE_PATH',dirname(__FILE__));
|
||||||
include APP_BASE_PATH.'header.php';
|
include APP_BASE_PATH.'header.php';
|
||||||
include APP_BASE_PATH.'modulejslibs.inc.php';
|
include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||||
?><div class="span9">
|
?><div class="span9">
|
||||||
|
|
||||||
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
|
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
|
||||||
<li class="active"><a id="tabCompanyLoan" href="#tabPageCompanyLoan"><?=t('Loan Types')?></a></li>
|
<li class="active"><a id="tabCompanyLoan" href="#tabPageCompanyLoan"><?=t('Loan Types')?></a></li>
|
||||||
<li><a id="tabEmployeeCompanyLoan" href="#tabPageEmployeeCompanyLoan"><?=t('Employee Loans')?></a></li>
|
<li><a id="tabEmployeeCompanyLoan" href="#tabPageEmployeeCompanyLoan"><?=t('Employee Loans')?></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="tab-content">
|
<div class="tab-content">
|
||||||
<div class="tab-pane active" id="tabPageCompanyLoan">
|
<div class="tab-pane active" id="tabPageCompanyLoan">
|
||||||
<div id="CompanyLoan" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
<div id="CompanyLoan" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div id="CompanyLoanForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
<div id="CompanyLoanForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane" id="tabPageEmployeeCompanyLoan">
|
<div class="tab-pane" id="tabPageEmployeeCompanyLoan">
|
||||||
<div id="EmployeeCompanyLoan" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
<div id="EmployeeCompanyLoan" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div id="EmployeeCompanyLoanForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
<div id="EmployeeCompanyLoanForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -61,4 +45,4 @@ modJsList['tabEmployeeCompanyLoan'] = new EmployeeCompanyLoanAdapter('EmployeeCo
|
|||||||
var modJs = modJsList['tabCompanyLoan'];
|
var modJs = modJsList['tabCompanyLoan'];
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<?php include APP_BASE_PATH.'footer.php';?>
|
<?php include APP_BASE_PATH.'footer.php';?>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"label": "Company Loans",
|
"label": "Company Loans",
|
||||||
"menu": "Admin",
|
"menu": "Admin",
|
||||||
"order": "89",
|
"order": "89",
|
||||||
"icon": "fa-shield",
|
"icon": "fa-money-check",
|
||||||
"user_levels": [
|
"user_levels": [
|
||||||
"Admin"
|
"Admin"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"Admin":"fa-cubes",
|
"Admin": "fa-cubes",
|
||||||
"Employees":"fa-users",
|
"Employees": "fa-grip-horizontal",
|
||||||
"Admin Reports":"fa-file-text",
|
"Admin Reports": "fa-book-reader",
|
||||||
"System":"fa-cogs",
|
"System": "fa-cogs",
|
||||||
"Insights":"fa-bar-chart-o",
|
"Insights": "fa-chart-line",
|
||||||
"Payroll":"fa-money"
|
"Payroll": "fa-file-archive"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,27 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
|
||||||
This file is part of Ice Framework.
|
|
||||||
|
|
||||||
Ice Framework is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
Ice Framework is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with Ice Framework. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
------------------------------------------------------------------
|
|
||||||
|
|
||||||
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
|
|
||||||
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
|
|
||||||
*/
|
|
||||||
|
|
||||||
$moduleName = 'metadata';
|
$moduleName = 'metadata';
|
||||||
|
$moduleGroup = 'admin';
|
||||||
define('MODULE_PATH',dirname(__FILE__));
|
define('MODULE_PATH',dirname(__FILE__));
|
||||||
include APP_BASE_PATH.'header.php';
|
include APP_BASE_PATH.'header.php';
|
||||||
include APP_BASE_PATH.'modulejslibs.inc.php';
|
include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||||
|
|||||||
@@ -2,11 +2,11 @@
|
|||||||
"label": "Manage Metadata",
|
"label": "Manage Metadata",
|
||||||
"menu": "System",
|
"menu": "System",
|
||||||
"order": "6",
|
"order": "6",
|
||||||
"icon": "fa-sort-alpha-asc",
|
"icon": "fa-microchip",
|
||||||
"user_levels": [
|
"user_levels": [
|
||||||
"Admin"
|
"Admin"
|
||||||
],
|
],
|
||||||
"permissions": [],
|
"permissions": [],
|
||||||
"model_namespace": "\\Metadata\\Common\\Model",
|
"model_namespace": "\\Metadata\\Common\\Model",
|
||||||
"manager": "\\Metadata\\Admin\\Api\\MetadataAdminManager"
|
"manager": "\\Metadata\\Admin\\Api\\MetadataAdminManager"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,27 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
This file is part of iCE Hrm.
|
Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de)
|
||||||
|
Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah)
|
||||||
iCE Hrm is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
iCE Hrm is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
------------------------------------------------------------------
|
|
||||||
|
|
||||||
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
|
|
||||||
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$moduleName = 'Modules';
|
$moduleName = 'modules';
|
||||||
|
$moduleGroup = 'admin';
|
||||||
define('MODULE_PATH',dirname(__FILE__));
|
define('MODULE_PATH',dirname(__FILE__));
|
||||||
include APP_BASE_PATH.'header.php';
|
include APP_BASE_PATH.'header.php';
|
||||||
include APP_BASE_PATH.'modulejslibs.inc.php';
|
include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||||
|
|||||||
@@ -1,27 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
This file is part of iCE Hrm.
|
Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de)
|
||||||
|
Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah)
|
||||||
iCE Hrm is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
iCE Hrm is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
------------------------------------------------------------------
|
|
||||||
|
|
||||||
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
|
|
||||||
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$moduleName = 'travel';
|
$moduleName = 'overtime';
|
||||||
|
$moduleGroup = 'admin';
|
||||||
define('MODULE_PATH',dirname(__FILE__));
|
define('MODULE_PATH',dirname(__FILE__));
|
||||||
include APP_BASE_PATH.'header.php';
|
include APP_BASE_PATH.'header.php';
|
||||||
include APP_BASE_PATH.'modulejslibs.inc.php';
|
include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"label": "Overtime Administration",
|
"label": "Overtime",
|
||||||
"menu": "Admin",
|
"menu": "Admin",
|
||||||
"order": "82",
|
"order": "82",
|
||||||
"icon": "fa-align-center",
|
"icon": "fa-align-center",
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
$moduleName = 'payroll';
|
$moduleName = 'payroll';
|
||||||
|
$moduleGroup = 'admin';
|
||||||
define('MODULE_PATH',dirname(__FILE__));
|
define('MODULE_PATH',dirname(__FILE__));
|
||||||
include APP_BASE_PATH.'header.php';
|
include APP_BASE_PATH.'header.php';
|
||||||
include APP_BASE_PATH.'modulejslibs.inc.php';
|
include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||||
@@ -10,11 +11,11 @@ include APP_BASE_PATH.'modulejslibs.inc.php';
|
|||||||
</style>
|
</style>
|
||||||
<div class="span9">
|
<div class="span9">
|
||||||
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
|
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
|
||||||
<li class="active"><a id="tabPayrollEmployee" href="#tabPagePayrollEmployee"><?=t('Company Payroll')?></a></li>
|
<li class="active"><a id="tabPayrollEmployee" href="#tabPagePayrollEmployee"><?=t('Payroll Employees')?></a></li>
|
||||||
<li class=""><a id="tabPayroll" href="#tabPagePayroll"><?=t('Payroll Reports')?></a></li>
|
<li class=""><a id="tabPayroll" href="#tabPagePayroll"><?=t('Payroll Reports')?></a></li>
|
||||||
<li class=""><a id="tabPayrollColumn" href="#tabPagePayrollColumn"><?=t('Payroll Columns')?></a></li>
|
<li class=""><a id="tabPayrollColumn" href="#tabPagePayrollColumn"><?=t('Payroll Columns')?></a></li>
|
||||||
<li class=""><a id="tabDeductionGroup" href="#tabPageDeductionGroup"><?=t('Calculation Groups')?></a></li>
|
<li class=""><a id="tabDeductionGroup" href="#tabPageDeductionGroup"><?=t('Payroll Groups')?></a></li>
|
||||||
<li class=""><a id="tabDeduction" href="#tabPageDeduction"><?=t('Calculation Methods')?></a></li>
|
<li class=""><a id="tabDeduction" href="#tabPageDeduction"><?=t('Saved Calculations')?></a></li>
|
||||||
<li class=""><a id="tabPayslipTemplate" href="#tabPagePayslipTemplate"><?=t('Payslip Templates')?></a></li>
|
<li class=""><a id="tabPayslipTemplate" href="#tabPagePayslipTemplate"><?=t('Payslip Templates')?></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|||||||
@@ -1,43 +1,27 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
This file is part of iCE Hrm.
|
Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de)
|
||||||
|
Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah)
|
||||||
iCE Hrm is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
iCE Hrm is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
------------------------------------------------------------------
|
|
||||||
|
|
||||||
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
|
|
||||||
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$moduleName = 'Permissions';
|
$moduleName = 'permissions';
|
||||||
|
$moduleGroup = 'admin';
|
||||||
define('MODULE_PATH',dirname(__FILE__));
|
define('MODULE_PATH',dirname(__FILE__));
|
||||||
include APP_BASE_PATH.'header.php';
|
include APP_BASE_PATH.'header.php';
|
||||||
include APP_BASE_PATH.'modulejslibs.inc.php';
|
include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||||
?><div class="span9">
|
?><div class="span9">
|
||||||
|
|
||||||
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
|
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
|
||||||
<li class="active"><a id="tabPermission" href="#tabPagePermission"><?=t('Permissions')?></a></li>
|
<li class="active"><a id="tabPermission" href="#tabPagePermission"><?=t('Permissions')?></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="tab-content">
|
<div class="tab-content">
|
||||||
<div class="tab-pane active" id="tabPagePermission">
|
<div class="tab-pane active" id="tabPagePermission">
|
||||||
<div id="Permission" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
<div id="Permission" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div id="PermissionForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
<div id="PermissionForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -51,4 +35,4 @@ modJsList['tabPermission'].setShowAddNew(false);
|
|||||||
var modJs = modJsList['tabPermission'];
|
var modJs = modJsList['tabPermission'];
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<?php include APP_BASE_PATH.'footer.php';?>
|
<?php include APP_BASE_PATH.'footer.php';?>
|
||||||
|
|||||||
@@ -1,82 +1,43 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
This file is part of iCE Hrm.
|
Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de)
|
||||||
|
Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah)
|
||||||
iCE Hrm is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
iCE Hrm is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
------------------------------------------------------------------
|
|
||||||
|
|
||||||
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
|
|
||||||
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$moduleName = 'projects';
|
$moduleName = 'projects';
|
||||||
|
$moduleGroup = 'admin';
|
||||||
define('MODULE_PATH',dirname(__FILE__));
|
define('MODULE_PATH',dirname(__FILE__));
|
||||||
include APP_BASE_PATH.'header.php';
|
include APP_BASE_PATH.'header.php';
|
||||||
include APP_BASE_PATH.'modulejslibs.inc.php';
|
include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||||
?><div class="span9">
|
?><div class="span9">
|
||||||
|
|
||||||
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
|
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
|
||||||
<li class="active"><a id="tabClient" href="#tabPageClient"><?=t('Clients')?></a></li>
|
<li class="active"><a id="tabProject" href="#tabPageProject"><?=t('Projects')?></a></li>
|
||||||
<li><a id="tabProject" href="#tabPageProject"><?=t('Projects')?></a></li>
|
|
||||||
<li><a id="tabEmployeeProject" href="#tabPageEmployeeProject"><?=t('Employee Projects')?></a></li>
|
<li><a id="tabEmployeeProject" href="#tabPageEmployeeProject"><?=t('Employee Projects')?></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="tab-content">
|
<div class="tab-content">
|
||||||
<div class="tab-pane active" id="tabPageClient">
|
<div class="tab-pane active" id="tabPageProject">
|
||||||
<div id="Client" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div id="ClientForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="tab-pane" id="tabPageProject">
|
|
||||||
<div id="Project" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
<div id="Project" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div id="ProjectForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
<div id="ProjectForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane" id="tabPageEmployeeProject">
|
<div class="tab-pane" id="tabPageEmployeeProject">
|
||||||
<div id="EmployeeProject" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
<div id="EmployeeProject" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div id="EmployeeProjectForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
<div id="EmployeeProjectForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
var modJsList = new Array();
|
var modJsList = [];
|
||||||
|
|
||||||
modJsList['tabClient'] = new ClientAdapter('Client','Client');
|
|
||||||
|
|
||||||
<?php if(isset($modulePermissions['perm']['Add Clients']) && $modulePermissions['perm']['Add Clients'] == "No"){?>
|
|
||||||
modJsList['tabClient'].setShowAddNew(false);
|
|
||||||
<?php }?>
|
|
||||||
|
|
||||||
<?php if(isset($modulePermissions['perm']['Delete Clients']) && $modulePermissions['perm']['Delete Clients'] == "No"){?>
|
|
||||||
modJsList['tabClient'].setShowDelete(false);
|
|
||||||
<?php }?>
|
|
||||||
|
|
||||||
<?php if(isset($modulePermissions['perm']['Edit Clients']) && $modulePermissions['perm']['Edit Clients'] == "No"){?>
|
|
||||||
modJsList['tabClient'].setShowSave(false);
|
|
||||||
<?php }?>
|
|
||||||
|
|
||||||
modJsList['tabProject'] = new ProjectAdapter('Project','Project');
|
modJsList['tabProject'] = new ProjectAdapter('Project','Project');
|
||||||
|
|
||||||
@@ -107,7 +68,7 @@ modJsList['tabEmployeeProject'].setShowEdit(false);
|
|||||||
<?php }?>
|
<?php }?>
|
||||||
|
|
||||||
|
|
||||||
var modJs = modJsList['tabClient'];
|
var modJs = modJsList['tabProject'];
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<?php include APP_BASE_PATH.'footer.php';?>
|
<?php include APP_BASE_PATH.'footer.php';?>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"label": "Projects\/Client Setup",
|
"label": "Projects",
|
||||||
"menu": "Admin",
|
"menu": "Admin",
|
||||||
"order": "51",
|
"order": "51",
|
||||||
"icon": "fa-list-alt",
|
"icon": "fa-list-alt",
|
||||||
@@ -12,12 +12,9 @@
|
|||||||
"Manager": {
|
"Manager": {
|
||||||
"Add Projects": "Yes",
|
"Add Projects": "Yes",
|
||||||
"Edit Projects": "Yes",
|
"Edit Projects": "Yes",
|
||||||
"Delete Projects": "No",
|
"Delete Projects": "No"
|
||||||
"Add Clients": "Yes",
|
|
||||||
"Edit Clients": "Yes",
|
|
||||||
"Delete Clients": "No"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"model_namespace": "\\Projects\\Common\\Model",
|
"model_namespace": "\\Projects\\Common\\Model",
|
||||||
"manager": "\\Projects\\Admin\\Api\\ProjectsAdminManager"
|
"manager": "\\Projects\\Admin\\Api\\ProjectsAdminManager"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,127 +1,65 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
This file is part of iCE Hrm.
|
Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de)
|
||||||
|
Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah)
|
||||||
iCE Hrm is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
iCE Hrm is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
------------------------------------------------------------------
|
|
||||||
|
|
||||||
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
|
|
||||||
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$moduleName = 'company_structure';
|
use Classes\PermissionManager;
|
||||||
|
use Qualifications\Common\Model\Certification;
|
||||||
|
use Qualifications\Common\Model\Education;
|
||||||
|
use Qualifications\Common\Model\Language;
|
||||||
|
use Qualifications\Common\Model\Skill;
|
||||||
|
|
||||||
|
$moduleName = 'qualifications';
|
||||||
|
$moduleGroup = 'admin';
|
||||||
define('MODULE_PATH',dirname(__FILE__));
|
define('MODULE_PATH',dirname(__FILE__));
|
||||||
include APP_BASE_PATH.'header.php';
|
include APP_BASE_PATH.'header.php';
|
||||||
include APP_BASE_PATH.'modulejslibs.inc.php';
|
include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||||
?><div class="span9">
|
?><div class="span9">
|
||||||
|
|
||||||
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
|
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
|
||||||
<li class="active"><a id="tabSkill" href="#tabPageSkill"><?=t('Skills')?></a></li>
|
<li class="active"><a id="tabSkill" href="#tabPageSkill"><?=t('Skills')?></a></li>
|
||||||
<li><a id="tabEducation" href="#tabPageEducation"><?=t('Education')?></a></li>
|
<li><a id="tabEducation" href="#tabPageEducation"><?=t('Education')?></a></li>
|
||||||
<li><a id="tabCertification" href="#tabPageCertification"><?=t('Certifications')?></a></li>
|
<li><a id="tabCertification" href="#tabPageCertification"><?=t('Certifications')?></a></li>
|
||||||
<li><a id="tabLanguage" href="#tabPageLanguage"><?=t('Languages')?></a></li>
|
<li><a id="tabLanguage" href="#tabPageLanguage"><?=t('Languages')?></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="tab-content">
|
<div class="tab-content">
|
||||||
<div class="tab-pane active" id="tabPageSkill">
|
<div class="tab-pane active" id="tabPageSkill">
|
||||||
<div id="Skill" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
<div id="SkillTable" class="reviewBlock" data-content="List" style="padding-left:5px;"></div>
|
||||||
|
<div id="SkillForm"></div>
|
||||||
</div>
|
<div id="SkillFilterForm"></div>
|
||||||
<div id="SkillForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane" id="tabPageEducation">
|
<div class="tab-pane" id="tabPageEducation">
|
||||||
<div id="Education" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
<div id="EducationTable" class="reviewBlock" data-content="List" style="padding-left:5px;"></div>
|
||||||
|
<div id="EducationForm"></div>
|
||||||
</div>
|
<div id="EducationFilterForm"></div>
|
||||||
<div id="EducationForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane" id="tabPageCertification">
|
<div class="tab-pane" id="tabPageCertification">
|
||||||
<div id="Certification" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
<div id="CertificationTable" class="reviewBlock" data-content="List" style="padding-left:5px;"></div>
|
||||||
|
<div id="CertificationForm"></div>
|
||||||
</div>
|
<div id="CertificationFilterForm"></div>
|
||||||
<div id="CertificationForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane" id="tabPageLanguage">
|
<div class="tab-pane" id="tabPageLanguage">
|
||||||
<div id="Language" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
<div id="LanguageTable" class="reviewBlock" data-content="List" style="padding-left:5px;"></div>
|
||||||
|
<div id="LanguageForm"></div>
|
||||||
</div>
|
<div id="LanguageFilterForm"></div>
|
||||||
<div id="LanguageForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
<div id="dataGroup"></div>
|
||||||
|
<?php
|
||||||
|
$moduleData = [
|
||||||
|
'user_level' => $user->user_level,
|
||||||
|
'permissions' => [
|
||||||
|
'Skill' => PermissionManager::checkGeneralAccess(new Skill()),
|
||||||
|
'Education' => PermissionManager::checkGeneralAccess(new Education()),
|
||||||
|
'Certification' => PermissionManager::checkGeneralAccess(new Certification()),
|
||||||
|
'Language' => PermissionManager::checkGeneralAccess(new Language()),
|
||||||
|
]
|
||||||
|
];
|
||||||
|
?>
|
||||||
<script>
|
<script>
|
||||||
var modJsList = new Array();
|
initAdminQualifications(<?=json_encode($moduleData)?>);
|
||||||
|
|
||||||
modJsList['tabSkill'] = new SkillAdapter('Skill');
|
|
||||||
<?php if(isset($modulePermissions['perm']['Add Skills']) && $modulePermissions['perm']['Add Skills'] == "No"){?>
|
|
||||||
modJsList['tabSkill'].setShowAddNew(false);
|
|
||||||
<?php }?>
|
|
||||||
<?php if(isset($modulePermissions['perm']['Delete Skills']) && $modulePermissions['perm']['Delete Skills'] == "No"){?>
|
|
||||||
modJsList['tabSkill'].setShowDelete(false);
|
|
||||||
<?php }?>
|
|
||||||
<?php if(isset($modulePermissions['perm']['Edit Skills']) && $modulePermissions['perm']['Edit Skills'] == "No"){?>
|
|
||||||
modJsList['tabSkill'].setShowEdit(false);
|
|
||||||
<?php }?>
|
|
||||||
|
|
||||||
|
|
||||||
modJsList['tabEducation'] = new EducationAdapter('Education');
|
|
||||||
<?php if(isset($modulePermissions['perm']['Add Education']) && $modulePermissions['perm']['Add Education'] == "No"){?>
|
|
||||||
modJsList['tabEducation'].setShowAddNew(false);
|
|
||||||
<?php }?>
|
|
||||||
<?php if(isset($modulePermissions['perm']['Delete Education']) && $modulePermissions['perm']['Delete Education'] == "No"){?>
|
|
||||||
modJsList['tabEducation'].setShowDelete(false);
|
|
||||||
<?php }?>
|
|
||||||
<?php if(isset($modulePermissions['perm']['Edit Education']) && $modulePermissions['perm']['Edit Education'] == "No"){?>
|
|
||||||
modJsList['tabEducation'].setShowEdit(false);
|
|
||||||
<?php }?>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
modJsList['tabCertification'] = new CertificationAdapter('Certification');
|
|
||||||
<?php if(isset($modulePermissions['perm']['Add Certifications']) && $modulePermissions['perm']['Add Certifications'] == "No"){?>
|
|
||||||
modJsList['tabCertification'].setShowAddNew(false);
|
|
||||||
<?php }?>
|
|
||||||
<?php if(isset($modulePermissions['perm']['Delete Certifications']) && $modulePermissions['perm']['Delete Certifications'] == "No"){?>
|
|
||||||
modJsList['tabCertification'].setShowDelete(false);
|
|
||||||
<?php }?>
|
|
||||||
<?php if(isset($modulePermissions['perm']['Edit Certifications']) && $modulePermissions['perm']['Edit Certifications'] == "No"){?>
|
|
||||||
modJsList['tabCertification'].setShowEdit(false);
|
|
||||||
<?php }?>
|
|
||||||
|
|
||||||
|
|
||||||
modJsList['tabLanguage'] = new LanguageAdapter('Language');
|
|
||||||
<?php if(isset($modulePermissions['perm']['Add Languages']) && $modulePermissions['perm']['Add Languages'] == "No"){?>
|
|
||||||
modJsList['tabLanguage'].setShowAddNew(false);
|
|
||||||
<?php }?>
|
|
||||||
<?php if(isset($modulePermissions['perm']['Delete Languages']) && $modulePermissions['perm']['Delete Languages'] == "No"){?>
|
|
||||||
modJsList['tabLanguage'].setShowDelete(false);
|
|
||||||
<?php }?>
|
|
||||||
<?php if(isset($modulePermissions['perm']['Edit Languages']) && $modulePermissions['perm']['Edit Languages'] == "No"){?>
|
|
||||||
modJsList['tabLanguage'].setShowEdit(false);
|
|
||||||
<?php }?>
|
|
||||||
|
|
||||||
var modJs = modJsList['tabSkill'];
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<?php include APP_BASE_PATH.'footer.php';?>
|
<?php include APP_BASE_PATH.'footer.php';?>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"label": "Qualifications Setup",
|
"label": "Qualifications Setup",
|
||||||
"menu": "Admin",
|
"menu": "Admin",
|
||||||
"order": "4",
|
"order": "4",
|
||||||
"icon": "fa-check-square-o",
|
"icon": "fa-check-square",
|
||||||
"user_levels": [
|
"user_levels": [
|
||||||
"Admin",
|
"Admin",
|
||||||
"Manager"
|
"Manager"
|
||||||
@@ -25,4 +25,4 @@
|
|||||||
},
|
},
|
||||||
"model_namespace": "\\Qualifications\\Common\\Model",
|
"model_namespace": "\\Qualifications\\Common\\Model",
|
||||||
"manager": "\\Qualifications\\Admin\\Api\\QualificationsAdminManager"
|
"manager": "\\Qualifications\\Admin\\Api\\QualificationsAdminManager"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
$moduleName = 'Reports';
|
$moduleName = 'reports';
|
||||||
|
$moduleGroup = 'admin';
|
||||||
define('MODULE_PATH',dirname(__FILE__));
|
define('MODULE_PATH',dirname(__FILE__));
|
||||||
include APP_BASE_PATH.'header.php';
|
include APP_BASE_PATH.'header.php';
|
||||||
include APP_BASE_PATH.'modulejslibs.inc.php';
|
include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"label": "Reports",
|
"label": "Reports",
|
||||||
"menu": "Admin Reports",
|
"menu": "Admin Reports",
|
||||||
"order": "1",
|
"order": "1",
|
||||||
"icon": "fa-file-o",
|
"icon": "fa-window-maximize",
|
||||||
"user_levels": [
|
"user_levels": [
|
||||||
"Admin",
|
"Admin",
|
||||||
"Manager"
|
"Manager"
|
||||||
@@ -11,4 +11,4 @@
|
|||||||
"permissions": [],
|
"permissions": [],
|
||||||
"model_namespace": "\\Reports\\Common\\Model",
|
"model_namespace": "\\Reports\\Common\\Model",
|
||||||
"manager": "\\Reports\\Admin\\Api\\ReportsAdminManager"
|
"manager": "\\Reports\\Admin\\Api\\ReportsAdminManager"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
$moduleName = 'salary';
|
$moduleName = 'salary';
|
||||||
|
$moduleGroup = 'admin';
|
||||||
define('MODULE_PATH',dirname(__FILE__));
|
define('MODULE_PATH',dirname(__FILE__));
|
||||||
include APP_BASE_PATH.'header.php';
|
include APP_BASE_PATH.'header.php';
|
||||||
include APP_BASE_PATH.'modulejslibs.inc.php';
|
include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||||
|
|||||||
@@ -2,11 +2,11 @@
|
|||||||
"label": "Salary",
|
"label": "Salary",
|
||||||
"menu": "Payroll",
|
"menu": "Payroll",
|
||||||
"order": "1",
|
"order": "1",
|
||||||
"icon": "fa-money",
|
"icon": "fa-money-check-alt",
|
||||||
"user_levels": [
|
"user_levels": [
|
||||||
"Admin"
|
"Admin"
|
||||||
],
|
],
|
||||||
"permissions": [],
|
"permissions": [],
|
||||||
"model_namespace": "\\Salary\\Common\\Model",
|
"model_namespace": "\\Salary\\Common\\Model",
|
||||||
"manager": "\\Salary\\Admin\\Api\\SalaryAdminManager"
|
"manager": "\\Salary\\Admin\\Api\\SalaryAdminManager"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,60 +1,48 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
This file is part of iCE Hrm.
|
Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de)
|
||||||
|
Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah)
|
||||||
iCE Hrm is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
iCE Hrm is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
------------------------------------------------------------------
|
|
||||||
|
|
||||||
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
|
|
||||||
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
use Classes\ModuleBuilder\ModuleBuilder;
|
||||||
|
use Classes\ModuleBuilder\ModuleTab;
|
||||||
|
|
||||||
$moduleName = 'settings';
|
$moduleName = 'settings';
|
||||||
|
$moduleGroup = 'admin';
|
||||||
define('MODULE_PATH',dirname(__FILE__));
|
define('MODULE_PATH',dirname(__FILE__));
|
||||||
include APP_BASE_PATH.'header.php';
|
include APP_BASE_PATH.'header.php';
|
||||||
include APP_BASE_PATH.'modulejslibs.inc.php';
|
include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||||
|
|
||||||
$moduleBuilder = new \Classes\ModuleBuilder\ModuleBuilder();
|
$moduleBuilder = new ModuleBuilder();
|
||||||
|
|
||||||
$options1 = array();
|
$options1 = array();
|
||||||
$options1['setShowAddNew'] = 'false';
|
$options1['setShowAddNew'] = 'false';
|
||||||
|
$options1['setRemoteTable'] = 'true';
|
||||||
|
|
||||||
$moduleBuilder->addModuleOrGroup(new \Classes\ModuleBuilder\ModuleTab(
|
$moduleBuilder->addModuleOrGroup(new ModuleTab(
|
||||||
'CompanySetting','Setting','Company','SettingAdapter','{"name":["Company:"]}','name',true,$options1
|
'CompanySetting','Setting','Company','SettingAdapter','{"category":"Company"}','name',true,$options1
|
||||||
));
|
));
|
||||||
$moduleBuilder->addModuleOrGroup(new \Classes\ModuleBuilder\ModuleTab(
|
$moduleBuilder->addModuleOrGroup(new ModuleTab(
|
||||||
'SystemSetting','Setting','System','SettingAdapter','{"name":["System:"]}','name',false,$options1
|
'SystemSetting','Setting','System','SettingAdapter','{"category":"System"}','name',false,$options1
|
||||||
));
|
));
|
||||||
if (!defined('CLOUD_INSTALLATION')) {
|
if (!defined('CLOUD_INSTALLATION')) {
|
||||||
$moduleBuilder->addModuleOrGroup(new \Classes\ModuleBuilder\ModuleTab(
|
$moduleBuilder->addModuleOrGroup(new ModuleTab(
|
||||||
'EmailSetting', 'Setting', 'Email', 'SettingAdapter', '{"name":["Email:"]}', 'name', false, $options1
|
'EmailSetting', 'Setting', 'Email', 'SettingAdapter', '{"category":"Email"}', 'name', false, $options1
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
$moduleBuilder->addModuleOrGroup(new \Classes\ModuleBuilder\ModuleTab(
|
$moduleBuilder->addModuleOrGroup(new ModuleTab(
|
||||||
'LeaveSetting','Setting','Leave / PTO','SettingAdapter','{"name":["Leave:"]}','name',false,$options1
|
'LeaveSetting','Setting','Leave / PTO','SettingAdapter','{"category":"Leave"}','name',false,$options1
|
||||||
));
|
));
|
||||||
if(!defined('LDAP_ENABLED') || LDAP_ENABLED == true){
|
if(!defined('LDAP_ENABLED') || LDAP_ENABLED == true){
|
||||||
$moduleBuilder->addModuleOrGroup(new \Classes\ModuleBuilder\ModuleTab(
|
$moduleBuilder->addModuleOrGroup(new ModuleTab(
|
||||||
'LDAPSetting','Setting','LDAP','SettingAdapter','{"name":["LDAP:"]}','name',false,$options1
|
'LDAPSetting','Setting','LDAP','SettingAdapter','{"category":"LDAP"}','name',false,$options1
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
$moduleBuilder->addModuleOrGroup(new \Classes\ModuleBuilder\ModuleTab(
|
$moduleBuilder->addModuleOrGroup(new ModuleTab(
|
||||||
'AttendanceSetting','Setting','Attendance','SettingAdapter','{"name":["Attendance:"]}','name',false,$options1
|
'AttendanceSetting','Setting','Attendance','SettingAdapter','{"category":"Attendance"}','name',false,$options1
|
||||||
));
|
));
|
||||||
$moduleBuilder->addModuleOrGroup(new \Classes\ModuleBuilder\ModuleTab(
|
$moduleBuilder->addModuleOrGroup(new ModuleTab(
|
||||||
'OtherSetting','Setting','Other','SettingAdapter','{"name":["Projects:","Recruitment:","Notifications:","Expense:","Travel:","Api:","Overtime:"]}','name',false,$options1
|
'OtherSetting','Setting','Other','SettingAdapter','{"category":["Projects","Recruitment","Notifications","Expense","Travel","Api","Overtime"]}','name',false,$options1
|
||||||
));
|
));
|
||||||
echo \Classes\UIManager::getInstance()->renderModule($moduleBuilder);
|
echo \Classes\UIManager::getInstance()->renderModule($moduleBuilder);
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -1,27 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
This file is part of iCE Hrm.
|
Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de)
|
||||||
|
Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah)
|
||||||
iCE Hrm is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
iCE Hrm is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
------------------------------------------------------------------
|
|
||||||
|
|
||||||
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
|
|
||||||
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$moduleName = 'travel';
|
$moduleName = 'travel';
|
||||||
|
$moduleGroup = 'admin';
|
||||||
define('MODULE_PATH',dirname(__FILE__));
|
define('MODULE_PATH',dirname(__FILE__));
|
||||||
include APP_BASE_PATH.'header.php';
|
include APP_BASE_PATH.'header.php';
|
||||||
include APP_BASE_PATH.'modulejslibs.inc.php';
|
include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||||
|
|||||||
@@ -4,14 +4,23 @@ Your account in <b>IceHrm</b> has been created on <a href="#_url_#">#_url_#</a><
|
|||||||
<b>Please find your account information below:</b><br/><br/>
|
<b>Please find your account information below:</b><br/><br/>
|
||||||
Username: <b>#_username_#</b><br/>
|
Username: <b>#_username_#</b><br/>
|
||||||
Email: <b>#_email_#</b> (You can use, username or email to login)<br/>
|
Email: <b>#_email_#</b> (You can use, username or email to login)<br/>
|
||||||
Password: <b>#_password_#</b> (Strongly advised to change this password once logged in)<br/>
|
Temporary Password: <b>#_password_#</b> (Strongly advised to change this password once logged in)<br/>
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
|
||||||
To get started, follow this link: <b><a href="#_url_#">#_url_#</a></b><br/><br/>
|
Login to IceHrm here: (<b><a href="#_url_#">#_url_#</a></b>)<br/>
|
||||||
|
<table class="body-action" align="center" width="100%" cellpadding="0" cellspacing="0" style="font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; -webkit-box-sizing: border-box; box-sizing: border-box; width: 100%; margin: 30px auto; padding: 0; text-align: center;">
|
||||||
|
<tr>
|
||||||
|
<td align="center" style="font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; -webkit-box-sizing: border-box; box-sizing: border-box;">
|
||||||
|
<div style="font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; -webkit-box-sizing: border-box; box-sizing: border-box;">
|
||||||
|
<a href="#_url_#" class="button" style="font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; -webkit-box-sizing: border-box; box-sizing: border-box; display: inline-block; width: 200px; border-radius: 3px; color: #ffffff; font-size: 15px; line-height: 45px; text-align: center; text-decoration: none; -webkit-text-size-adjust: none; mso-hide: all; background-color: #22BC66;" target="_blank">Get Started</a>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
<font face="Arial, sans-serif" size="1" color="#4a4a4a">
|
<font face="Arial, sans-serif" size="1" color="#4a4a4a">
|
||||||
THIS IS AN AUTOMATED EMAIL - REPLIES WILL BE SENT TO #_adminEmail_#
|
THIS IS AN AUTOMATED EMAIL - REPLIES WILL BE SENT TO #_adminEmail_#
|
||||||
</font>
|
</font>
|
||||||
<br/>
|
<br/>
|
||||||
<br/>
|
<br/>
|
||||||
|
|||||||
@@ -1,66 +1,70 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
This file is part of iCE Hrm.
|
Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de)
|
||||||
|
Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah)
|
||||||
iCE Hrm is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
iCE Hrm is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
------------------------------------------------------------------
|
|
||||||
|
|
||||||
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
|
|
||||||
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
use Classes\PermissionManager;
|
||||||
|
use Users\Common\Model\UserRole;
|
||||||
|
|
||||||
$moduleName = 'users';
|
$moduleName = 'users';
|
||||||
|
$moduleGroup = 'admin';
|
||||||
define('MODULE_PATH',dirname(__FILE__));
|
define('MODULE_PATH',dirname(__FILE__));
|
||||||
include APP_BASE_PATH.'header.php';
|
include APP_BASE_PATH.'header.php';
|
||||||
include APP_BASE_PATH.'modulejslibs.inc.php';
|
include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||||
|
$csrf = \Classes\BaseService::getInstance()->generateCsrf('User');
|
||||||
|
$modelClasses = array_keys(\Classes\BaseService::getInstance()->getModelClassMap());
|
||||||
|
$modelClasses = array_map(function($item) {
|
||||||
|
return [ $item, $item ];
|
||||||
|
}, $modelClasses);
|
||||||
|
|
||||||
?><div class="span9">
|
?><div class="span9">
|
||||||
|
|
||||||
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
|
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
|
||||||
<li class="active"><a id="tabUser" href="#tabPageUser"><?=t('Users')?></a></li>
|
<li class="active"><a id="tabUser" href="#tabPageUser"><?=t('Users')?></a></li>
|
||||||
<li class=""><a id="tabUserRole" href="#tabPageUserRole"><?=t('User Roles')?></a></li>
|
<li class=""><a id="tabUserRole" href="#tabPageUserRole"><?=t('Users Roles')?></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="tab-content">
|
<div class="tab-content">
|
||||||
<div class="tab-pane active" id="tabPageUser">
|
<div class="tab-pane active" id="tabPageUser">
|
||||||
<div id="User" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
<div id="User" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div id="UserForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
<div id="UserForm" class="reviewBlock" data-content="Form" data-csrf="<?=$csrf?>" style="padding-left:5px;display:none;">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane" id="tabPageUserRole">
|
<div class="tab-pane" id="tabPageUserRole">
|
||||||
<div id="UserRole" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
<div id="UserRoleTable" class="reviewBlock" data-content="List" style="padding-left:5px;"></div>
|
||||||
|
<div id="UserRoleForm"></div>
|
||||||
</div>
|
<div id="UserRoleFilterForm"></div>
|
||||||
<div id="UserRoleForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
<div id="dataGroup"></div>
|
||||||
|
<?php
|
||||||
|
$moduleData = [
|
||||||
|
'user_level' => $user->user_level,
|
||||||
|
'permissions' => [
|
||||||
|
'UserRole' => PermissionManager::checkGeneralAccess(new UserRole()),
|
||||||
|
]];
|
||||||
|
?>
|
||||||
<script>
|
<script>
|
||||||
var modJsList = new Array();
|
var modJsList = [];
|
||||||
modJsList['tabUser'] = new UserAdapter('User');
|
modJsList['tabUser'] = new UserAdapter('User');
|
||||||
<?php if(isset($_REQUEST['action']) && $_REQUEST['action'] == "new" && isset($_REQUEST['object'])){?>
|
modJsList['tabUser'].setCSRFRequired(true);
|
||||||
modJsList['tabUser'].newInitObject = JSON.parse(Base64.decode('<?=$_REQUEST['object']?>'));
|
modJsList['tabUser'].setRemoteTable(true);;
|
||||||
|
<?php if(isset($_GET['action']) && $_GET['action'] == "new" && isset($_GET['object'])){?>
|
||||||
|
modJsList['tabUser'].newInitObject = JSON.parse(Base64.decode('<?=$_GET['object']?>'));
|
||||||
<?php }?>
|
<?php }?>
|
||||||
modJsList['tabUserRole'] = new UserRoleAdapter('UserRole');
|
modJsList['tabUserRole'] = new UserRoleAdapter('UserRole');
|
||||||
|
modJsList['tabUserRole'].setTables(<?=json_encode($modelClasses)?>);
|
||||||
|
modJsList['tabUserRole'].setObjectTypeName('User Role');
|
||||||
|
modJsList['tabUserRole'].setDataPipe(new IceDataPipe(modJsList['tabUserRole']));
|
||||||
|
modJsList['tabUserRole'].setAccess(<?=json_encode($moduleData['permissions']['UserRole'])?>);
|
||||||
var modJs = modJsList['tabUser'];
|
var modJs = modJsList['tabUser'];
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<?php include APP_BASE_PATH.'footer.php';?>
|
<div id="UserRoleFormReact"></div>
|
||||||
|
<div id="dataGroup"></div>
|
||||||
|
<?php include APP_BASE_PATH.'footer.php';?>
|
||||||
|
|||||||
47
core/api-rest.php
Normal file
47
core/api-rest.php
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
<?php
|
||||||
|
define('CLIENT_PATH',dirname(__FILE__));
|
||||||
|
include ("config.base.php");
|
||||||
|
include ("include.common.php");
|
||||||
|
include("server.includes.inc.php");
|
||||||
|
|
||||||
|
if(\Classes\SettingsManager::getInstance()->getSetting('Api: REST Api Enabled') == '1') {
|
||||||
|
|
||||||
|
if (defined('SYM_CLIENT')) {
|
||||||
|
define('REST_API_PATH', '/'.SYM_CLIENT.'/');
|
||||||
|
} else if (!defined('REST_API_PATH')){
|
||||||
|
define('REST_API_PATH', '/');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
\Utils\LogManager::getInstance()->info("Request: " . $_REQUEST);
|
||||||
|
|
||||||
|
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
|
||||||
|
http_response_code(200);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
$echoRoute = \Classes\Macaw::get(REST_API_PATH . 'echo', function () {
|
||||||
|
echo "Echo " . rand();
|
||||||
|
});
|
||||||
|
|
||||||
|
\Utils\LogManager::getInstance()->debug('Api registered URI: '.$echoRoute);
|
||||||
|
|
||||||
|
$moduleManagers = \Classes\BaseService::getInstance()->getModuleManagers();
|
||||||
|
|
||||||
|
foreach ($moduleManagers as $moduleManagerObj) {
|
||||||
|
|
||||||
|
$moduleManagerObj->setupRestEndPoints();
|
||||||
|
}
|
||||||
|
$uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
|
||||||
|
$method = $_SERVER['REQUEST_METHOD'];
|
||||||
|
\Utils\LogManager::getInstance()->debug('Api dispatch URI: '.$uri);
|
||||||
|
\Utils\LogManager::getInstance()->debug('Api dispatch method: '.$uri);
|
||||||
|
if (!defined('SYM_CLIENT')) {
|
||||||
|
//For hosted installations, dispatch will be done in app/index
|
||||||
|
\Classes\Macaw::dispatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}else{
|
||||||
|
echo "REST Api is not enabled. Please set 'Api: REST Api Enabled' setting to true";
|
||||||
|
}
|
||||||
41
core/api-url-based.php
Normal file
41
core/api-url-based.php
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
<?php
|
||||||
|
define('CLIENT_PATH',dirname(__FILE__));
|
||||||
|
include ("config.base.php");
|
||||||
|
include ("include.common.php");
|
||||||
|
include("server.includes.inc.php");
|
||||||
|
|
||||||
|
if(\Classes\SettingsManager::getInstance()->getSetting('Api: REST Api Enabled') == '1') {
|
||||||
|
|
||||||
|
\Utils\LogManager::getInstance()->info("Request: " . $_REQUEST);
|
||||||
|
|
||||||
|
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
|
||||||
|
http_response_code(200);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
define('REST_API_PATH', '/');
|
||||||
|
|
||||||
|
$echoRoute = \Classes\Macaw::get(REST_API_PATH . 'echo', function () {
|
||||||
|
echo "Echo " . rand();
|
||||||
|
});
|
||||||
|
|
||||||
|
\Utils\LogManager::getInstance()->debug('Api registered URI: '.$echoRoute);
|
||||||
|
|
||||||
|
$moduleManagers = \Classes\BaseService::getInstance()->getModuleManagers();
|
||||||
|
|
||||||
|
foreach ($moduleManagers as $moduleManagerObj) {
|
||||||
|
|
||||||
|
$moduleManagerObj->setupRestEndPoints();
|
||||||
|
}
|
||||||
|
$method = $_SERVER['REQUEST_METHOD'];
|
||||||
|
if (strtoupper($method) === 'GET') {
|
||||||
|
\Classes\IceRoute::dispatch($_GET['url'], $method);
|
||||||
|
} else {
|
||||||
|
$method = strtoupper($_REQUEST['method']);
|
||||||
|
\Classes\IceRoute::dispatch($_REQUEST['url'], $method);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}else{
|
||||||
|
echo "REST Api is not enabled. Please set 'Api: REST Api Enabled' setting to true";
|
||||||
|
}
|
||||||
@@ -13,10 +13,10 @@ if(!defined('HOME_LINK_OTHERS')){
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Version
|
//Version
|
||||||
define('VERSION', '23.0.1.OS');
|
define('VERSION', '28.2.0.OS');
|
||||||
define('CACHE_VALUE', '23.0.1.OS');
|
define('CACHE_VALUE', '28.2.0.OS.2020-11130243');
|
||||||
define('VERSION_NUMBER', '2301');
|
define('VERSION_NUMBER', '280200');
|
||||||
define('VERSION_DATE', '14/06/2018');
|
define('VERSION_DATE', '13/11/2020');
|
||||||
|
|
||||||
if(!defined('CONTACT_EMAIL')){define('CONTACT_EMAIL','icehrm@gamonoid.com');}
|
if(!defined('CONTACT_EMAIL')){define('CONTACT_EMAIL','icehrm@gamonoid.com');}
|
||||||
if(!defined('KEY_PREFIX')){define('KEY_PREFIX','IceHrm');}
|
if(!defined('KEY_PREFIX')){define('KEY_PREFIX','IceHrm');}
|
||||||
|
|||||||
@@ -5,18 +5,16 @@ $cron = new \Model\Cron();
|
|||||||
$crons = $cron->Find("status = ?",array('Enabled'));
|
$crons = $cron->Find("status = ?",array('Enabled'));
|
||||||
|
|
||||||
if(!$crons){
|
if(!$crons){
|
||||||
\Utils\LogManager::getInstance()->info(CLIENT_NAME." error :".$cron->ErrorMsg());
|
\Utils\LogManager::getInstance()->error(CLIENT_NAME." error :".$cron->ErrorMsg());
|
||||||
}
|
}
|
||||||
|
|
||||||
\Utils\LogManager::getInstance()->info(CLIENT_NAME." cron count :".count($crons));
|
\Utils\LogManager::getInstance()->debug(CLIENT_NAME." cron count :".count($crons));
|
||||||
foreach($crons as $cron){
|
foreach($crons as $cron){
|
||||||
$count++;
|
|
||||||
$iceCron = new \Classes\Cron\IceCron($cron);
|
$iceCron = new \Classes\Cron\IceCron($cron);
|
||||||
\Utils\LogManager::getInstance()->info(CLIENT_NAME." check cron :".$cron->name);
|
\Utils\LogManager::getInstance()->debug(CLIENT_NAME." check cron :".$cron->name);
|
||||||
if($iceCron->isRunNow()){
|
if($iceCron->isRunNow()){
|
||||||
\Utils\LogManager::getInstance()->info(CLIENT_NAME." execute cron :".$cron->name);
|
\Utils\LogManager::getInstance()->debug(CLIENT_NAME." execute cron :".$cron->name);
|
||||||
$iceCron->execute();
|
$iceCron->execute();
|
||||||
sleep(1);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,14 @@ $_REQUEST['sm'] = \Classes\BaseService::getInstance()->fixJSON($_REQUEST['sm']);
|
|||||||
$_REQUEST['cl'] = \Classes\BaseService::getInstance()->fixJSON($_REQUEST['cl']);
|
$_REQUEST['cl'] = \Classes\BaseService::getInstance()->fixJSON($_REQUEST['cl']);
|
||||||
$_REQUEST['ft'] = \Classes\BaseService::getInstance()->fixJSON($_REQUEST['ft']);
|
$_REQUEST['ft'] = \Classes\BaseService::getInstance()->fixJSON($_REQUEST['ft']);
|
||||||
|
|
||||||
|
// Domain aware input cleanup
|
||||||
|
$cleaner = new \Classes\DomainAwareInputCleaner();
|
||||||
|
$_REQUEST['t'] = $cleaner->cleanTableColumn($_REQUEST['t']);
|
||||||
|
$_REQUEST['ft'] = $cleaner->cleanFilters($_REQUEST['ft']);
|
||||||
|
$_REQUEST['ob'] = $cleaner->cleanOrderBy($_REQUEST['ob']);
|
||||||
|
$_REQUEST['sSearch'] = $cleaner->cleanSearch($_REQUEST['sSearch']);
|
||||||
|
$_REQUEST['cl'] = $cleaner->cleanColumns($_REQUEST['cl']);
|
||||||
|
|
||||||
$columns = json_decode($_REQUEST['cl'], true);
|
$columns = json_decode($_REQUEST['cl'], true);
|
||||||
$columns[] = "id";
|
$columns[] = "id";
|
||||||
$table = $_REQUEST['t'];
|
$table = $_REQUEST['t'];
|
||||||
@@ -80,8 +88,6 @@ if (!isset($_REQUEST['objects'])) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
\Utils\LogManager::getInstance()->debug("Row Count Filter Query:" . $countFilterQuery);
|
|
||||||
\Utils\LogManager::getInstance()->debug("Row Count Filter Query Data:" . json_encode($countFilterQueryData));
|
|
||||||
|
|
||||||
if (in_array($table, \Classes\BaseService::getInstance()->userTables)
|
if (in_array($table, \Classes\BaseService::getInstance()->userTables)
|
||||||
&& !$skipProfileRestriction && !$isSubOrdinates) {
|
&& !$skipProfileRestriction && !$isSubOrdinates) {
|
||||||
@@ -89,8 +95,6 @@ if (!isset($_REQUEST['objects'])) {
|
|||||||
$sql = "Select count(id) as count from "
|
$sql = "Select count(id) as count from "
|
||||||
. $obj->_table . " where " . SIGN_IN_ELEMENT_MAPPING_FIELD_NAME . " = ? " . $countFilterQuery;
|
. $obj->_table . " where " . SIGN_IN_ELEMENT_MAPPING_FIELD_NAME . " = ? " . $countFilterQuery;
|
||||||
array_unshift($countFilterQueryData, $cemp);
|
array_unshift($countFilterQueryData, $cemp);
|
||||||
\Utils\LogManager::getInstance()->debug("Count Filter Query 1:" . $sql);
|
|
||||||
\Utils\LogManager::getInstance()->debug("Count Filter Query Data 1:" . json_encode($countFilterQueryData));
|
|
||||||
|
|
||||||
$rowCount = $obj->DB()->Execute($sql, $countFilterQueryData);
|
$rowCount = $obj->DB()->Execute($sql, $countFilterQueryData);
|
||||||
} else {
|
} else {
|
||||||
@@ -166,20 +170,12 @@ if (!isset($_REQUEST['objects'])) {
|
|||||||
$sql = "Select count(id) as count from " . $obj->_table .
|
$sql = "Select count(id) as count from " . $obj->_table .
|
||||||
" where " . $obj->getUserOnlyMeAccessField() . " in (" . $subordinatesIds . ") "
|
" where " . $obj->getUserOnlyMeAccessField() . " in (" . $subordinatesIds . ") "
|
||||||
. $countFilterQuery;
|
. $countFilterQuery;
|
||||||
\Utils\LogManager::getInstance()->debug("Count Filter Query 2:" . $sql);
|
|
||||||
\Utils\LogManager::getInstance()->debug(
|
|
||||||
"Count Filter Query Data 2:" . json_encode($countFilterQueryData)
|
|
||||||
);
|
|
||||||
$rowCount = $obj->DB()->Execute($sql, $countFilterQueryData);
|
$rowCount = $obj->DB()->Execute($sql, $countFilterQueryData);
|
||||||
} else {
|
} else {
|
||||||
$sql = "Select count(id) as count from " . $obj->_table;
|
$sql = "Select count(id) as count from " . $obj->_table;
|
||||||
if (!empty($countFilterQuery)) {
|
if (!empty($countFilterQuery)) {
|
||||||
$sql .= " where 1=1 " . $countFilterQuery;
|
$sql .= " where 1=1 " . $countFilterQuery;
|
||||||
}
|
}
|
||||||
\Utils\LogManager::getInstance()->debug("Count Filter Query 3:" . $sql);
|
|
||||||
\Utils\LogManager::getInstance()->debug(
|
|
||||||
"Count Filter Query Data 3:" . json_encode($countFilterQueryData)
|
|
||||||
);
|
|
||||||
$rowCount = $obj->DB()->Execute($sql, $countFilterQueryData);
|
$rowCount = $obj->DB()->Execute($sql, $countFilterQueryData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -196,8 +192,30 @@ if (isset($rowCount) && !empty($rowCount)) {
|
|||||||
/*
|
/*
|
||||||
* Output
|
* Output
|
||||||
*/
|
*/
|
||||||
|
if (isset($_REQUEST['version']) && $_REQUEST['version'] === 'v2') {
|
||||||
|
$output = [
|
||||||
|
"totalRecords" => $totalRows,
|
||||||
|
"totalDisplayRecords" => $totalRows,
|
||||||
|
"objects" => []
|
||||||
|
];
|
||||||
|
|
||||||
if (!isset($_REQUEST['objects'])) {
|
foreach ($data as $item) {
|
||||||
|
$row = new stdClass();
|
||||||
|
$colCount = count($columns);
|
||||||
|
for ($i = 0; $i < $colCount; $i++) {
|
||||||
|
$row->{$columns[$i]} = $item->{$columns[$i]};
|
||||||
|
}
|
||||||
|
$output['objects'][] = $row;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
echo \Classes\BaseService::getInstance()->safeJsonEncode($output);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
\Utils\LogManager::getInstance()->error($e->getMessage());
|
||||||
|
\Utils\LogManager::getInstance()->notifyException($e);
|
||||||
|
echo json_encode(['status' => 'Error']);
|
||||||
|
}
|
||||||
|
}else if (!isset($_REQUEST['objects'])) {
|
||||||
$output = array(
|
$output = array(
|
||||||
"sEcho" => intval($_REQUEST['sEcho']),
|
"sEcho" => intval($_REQUEST['sEcho']),
|
||||||
"iTotalRecords" => $totalRows,
|
"iTotalRecords" => $totalRows,
|
||||||
@@ -214,12 +232,24 @@ if (!isset($_REQUEST['objects'])) {
|
|||||||
$row["_org"] = \Classes\BaseService::getInstance()->cleanUpAdoDB($item);
|
$row["_org"] = \Classes\BaseService::getInstance()->cleanUpAdoDB($item);
|
||||||
$output['aaData'][] = $row;
|
$output['aaData'][] = $row;
|
||||||
}
|
}
|
||||||
echo json_encode($output);
|
|
||||||
|
try {
|
||||||
|
echo \Classes\BaseService::getInstance()->safeJsonEncode($output);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
\Utils\LogManager::getInstance()->error($e->getMessage());
|
||||||
|
\Utils\LogManager::getInstance()->notifyException($e);
|
||||||
|
echo json_encode(['status' => 'Error']);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$output = array();
|
$output = array();
|
||||||
foreach ($data as $item) {
|
foreach ($data as $item) {
|
||||||
unset($item->keysToIgnore);
|
unset($item->keysToIgnore);
|
||||||
$output[] = \Classes\BaseService::getInstance()->cleanUpAdoDB($item);
|
$output[] = \Classes\BaseService::getInstance()->cleanUpAdoDB($item);
|
||||||
}
|
}
|
||||||
echo json_encode($output);
|
try {
|
||||||
|
echo \Classes\BaseService::getInstance()->safeJsonEncode($output);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
\Utils\LogManager::getInstance()->error($e->getMessage());
|
||||||
|
echo json_encode(['status' => 'Error']);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
312
core/data/payroll/Ghana-Payroll.txt
Normal file
312
core/data/payroll/Ghana-Payroll.txt
Normal file
@@ -0,0 +1,312 @@
|
|||||||
|
{
|
||||||
|
"name": "Ghana Payroll Calculation",
|
||||||
|
"description": "",
|
||||||
|
"deductions": [
|
||||||
|
{
|
||||||
|
"id": "101",
|
||||||
|
"name": "Housing Allowance (10%)",
|
||||||
|
"componentType": "[]",
|
||||||
|
"component": "[\"1\"]",
|
||||||
|
"payrollColumn": null,
|
||||||
|
"rangeAmounts": "[{\"lowerCondition\":\"No Lower Limit\",\"lowerLimit\":0,\"upperCondition\":\"No Upper Limit\",\"upperLimit\":0,\"amount\":\"X*0.1\",\"id\":\"rangeAmounts_1\"}]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "102",
|
||||||
|
"name": "Overtime Allowance (10%)",
|
||||||
|
"componentType": "[]",
|
||||||
|
"component": "[\"1\"]",
|
||||||
|
"payrollColumn": null,
|
||||||
|
"rangeAmounts": "[{\"lowerCondition\":\"No Lower Limit\",\"lowerLimit\":0,\"upperCondition\":\"No Upper Limit\",\"upperLimit\":0,\"amount\":\"X*0.1\",\"id\":\"rangeAmounts_1\"}]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "103",
|
||||||
|
"name": "SSNIT",
|
||||||
|
"componentType": "[]",
|
||||||
|
"component": "[\"1\"]",
|
||||||
|
"payrollColumn": null,
|
||||||
|
"rangeAmounts": "[{\"lowerCondition\":\"No Lower Limit\",\"lowerLimit\":0,\"upperCondition\":\"No Upper Limit\",\"upperLimit\":0,\"amount\":\"X*0.055\",\"id\":\"rangeAmounts_1\"}]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "104",
|
||||||
|
"name": "Tax - Ghana",
|
||||||
|
"componentType": "[]",
|
||||||
|
"component": "[]",
|
||||||
|
"payrollColumn": null,
|
||||||
|
"rangeAmounts": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "106",
|
||||||
|
"name": "Next 108 GHC",
|
||||||
|
"componentType": "[]",
|
||||||
|
"component": "[]",
|
||||||
|
"payrollColumn": "112",
|
||||||
|
"rangeAmounts": "[{\"lowerCondition\":\"gte\",\"lowerLimit\":\"216\",\"upperCondition\":\"lt\",\"upperLimit\":\"324\",\"amount\":\"X*0.05\",\"id\":\"rangeAmounts_1\"},{\"lowerCondition\":\"gte\",\"lowerLimit\":\"324\",\"upperCondition\":\"No Upper Limit\",\"upperLimit\":0,\"amount\":\"5.4\",\"id\":\"rangeAmounts_2\"}]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "107",
|
||||||
|
"name": "Next 151 GHC",
|
||||||
|
"componentType": "[]",
|
||||||
|
"component": "[]",
|
||||||
|
"payrollColumn": "112",
|
||||||
|
"rangeAmounts": "[{\"lowerCondition\":\"gte\",\"lowerLimit\":\"324\",\"upperCondition\":\"lt\",\"upperLimit\":\"475\",\"amount\":\"(X-324) * 0.1\",\"id\":\"rangeAmounts_1\"},{\"lowerCondition\":\"gte\",\"lowerLimit\":\"259\",\"upperCondition\":\"No Upper Limit\",\"upperLimit\":0,\"amount\":\"15.10\",\"id\":\"rangeAmounts_2\"}]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "108",
|
||||||
|
"name": "Next 2765 GHC",
|
||||||
|
"componentType": "[]",
|
||||||
|
"component": "[]",
|
||||||
|
"payrollColumn": "112",
|
||||||
|
"rangeAmounts": "[{\"lowerCondition\":\"gte\",\"lowerLimit\":\"475\",\"upperCondition\":\"lt\",\"upperLimit\":\"3240\",\"amount\":\"(X - 475) * 0.175\",\"id\":\"rangeAmounts_1\"},{\"lowerCondition\":\"gte\",\"lowerLimit\":\"3240\",\"upperCondition\":\"No Upper Limit\",\"upperLimit\":0,\"amount\":\"483.88\",\"id\":\"rangeAmounts_2\"}]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "111",
|
||||||
|
"name": "Remaining after 3240 GHC",
|
||||||
|
"componentType": "[]",
|
||||||
|
"component": "[]",
|
||||||
|
"payrollColumn": "112",
|
||||||
|
"rangeAmounts": "[{\"lowerCondition\":\"gte\",\"lowerLimit\":\"3240\",\"upperCondition\":\"No Upper Limit\",\"upperLimit\":0,\"amount\":\"(X-3240)*0.25\",\"id\":\"rangeAmounts_1\"}]"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"id": "105",
|
||||||
|
"name": "GH - Salary (Basic)",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[\"1\"]",
|
||||||
|
"deductions": "[]",
|
||||||
|
"add_columns": "[]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "1",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "106",
|
||||||
|
"name": "GH - Housing Allowance",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[]",
|
||||||
|
"deductions": "[\"101\"]",
|
||||||
|
"add_columns": "[]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "2",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "107",
|
||||||
|
"name": "GH - Overtime Allowance",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[]",
|
||||||
|
"deductions": "[\"102\"]",
|
||||||
|
"add_columns": "[]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "3",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "108",
|
||||||
|
"name": "GH - Total",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[]",
|
||||||
|
"deductions": "[]",
|
||||||
|
"add_columns": "[\"106\",\"107\",\"105\"]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "4",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "109",
|
||||||
|
"name": "GH - SSNIT",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[]",
|
||||||
|
"deductions": "[\"103\"]",
|
||||||
|
"add_columns": "[]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "5",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "112",
|
||||||
|
"name": "GH - Taxable Income",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[]",
|
||||||
|
"deductions": "[]",
|
||||||
|
"add_columns": "[\"106\",\"105\"]",
|
||||||
|
"sub_columns": "[\"109\"]",
|
||||||
|
"colorder": "7",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "113",
|
||||||
|
"name": "GH - Next 108 GHC",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[]",
|
||||||
|
"deductions": "[\"106\"]",
|
||||||
|
"add_columns": "[]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "9",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "114",
|
||||||
|
"name": "GH - Next 151 GHC",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[]",
|
||||||
|
"deductions": "[\"107\"]",
|
||||||
|
"add_columns": "[]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "10",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "115",
|
||||||
|
"name": "GH - Next 2765 GHC",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[]",
|
||||||
|
"deductions": "[\"108\"]",
|
||||||
|
"add_columns": "[]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "11",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "120",
|
||||||
|
"name": "GH - Remaining after 3240 GHC",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[]",
|
||||||
|
"deductions": "[\"111\"]",
|
||||||
|
"add_columns": "[]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "12",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "121",
|
||||||
|
"name": "GH - Overtime Allow. Tax",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[]",
|
||||||
|
"deductions": "[]",
|
||||||
|
"add_columns": "[]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "13",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "[{\"name\":\"O\",\"column\":\"107\",\"id\":\"calculation_columns_1\"}]",
|
||||||
|
"calculation_function": "O*0.05"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "122",
|
||||||
|
"name": "GH - Total (PAYE Tax)",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[]",
|
||||||
|
"deductions": "[]",
|
||||||
|
"add_columns": "[\"113\",\"114\",\"115\",\"121\",\"120\"]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "14",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "123",
|
||||||
|
"name": "GH - Deductions - Sub Total",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[]",
|
||||||
|
"deductions": "[]",
|
||||||
|
"add_columns": "[\"109\",\"122\"]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "15",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "125",
|
||||||
|
"name": "GH - Final Total",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[]",
|
||||||
|
"deductions": "[]",
|
||||||
|
"add_columns": "[\"108\"]",
|
||||||
|
"sub_columns": "[\"123\"]",
|
||||||
|
"colorder": "16",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"salaryComponents": [
|
||||||
|
{
|
||||||
|
"id": "1",
|
||||||
|
"name": "Basic Salary",
|
||||||
|
"componentType": "1",
|
||||||
|
"details": null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"salaryComponentTypes": [
|
||||||
|
{
|
||||||
|
"id": "1",
|
||||||
|
"code": "B001",
|
||||||
|
"name": "Basic"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"samplePayroll": {
|
||||||
|
"name": "Germany Payroll Calculation",
|
||||||
|
"pay_period": "4",
|
||||||
|
"columns": "[\"126\",\"127\",\"131\",\"129\",\"128\",\"133\",\"130\",\"132\"]",
|
||||||
|
"date_start": "2017-08-01",
|
||||||
|
"date_end": "2017-08-31",
|
||||||
|
"status": "Draft"
|
||||||
|
},
|
||||||
|
"payslipTemplate": {
|
||||||
|
"name": "Sample Payslip Template",
|
||||||
|
"data": "[{\"type\":\"Company Logo\",\"payrollColumn\":\"NULL\",\"label\":\"\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_1\"},{\"type\":\"Company Name\",\"payrollColumn\":\"NULL\",\"label\":\"\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_2\"},{\"type\":\"Separators\",\"payrollColumn\":\"NULL\",\"label\":\"\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_5\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"126\",\"label\":\"Basic Salary\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_3\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"127\",\"label\":\"Car Allowance\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_4\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"130\",\"label\":\"Payment for Hours Worked\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_6\"},{\"type\":\"Separators\",\"payrollColumn\":\"NULL\",\"label\":\"\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_7\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"131\",\"label\":\"Gross Pay\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_8\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"132\",\"label\":\"Tax 19%\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_9\"},{\"type\":\"Separators\",\"payrollColumn\":\"NULL\",\"label\":\"\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_10\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"133\",\"label\":\"Net Pay\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_11\"}]",
|
||||||
|
"status": null,
|
||||||
|
"created": "2017-09-08 21:12:40",
|
||||||
|
"updated": "2017-09-08 21:12:40"
|
||||||
|
}
|
||||||
|
}
|
||||||
188
core/data/payroll/Sample-Country-Payroll.txt
Normal file
188
core/data/payroll/Sample-Country-Payroll.txt
Normal file
@@ -0,0 +1,188 @@
|
|||||||
|
{
|
||||||
|
"name": "Sample Country Payroll",
|
||||||
|
"description": "",
|
||||||
|
"deductions": [
|
||||||
|
{
|
||||||
|
"id": "112",
|
||||||
|
"name": "DE - Tax",
|
||||||
|
"componentType": "[]",
|
||||||
|
"component": "[]",
|
||||||
|
"payrollColumn": "131",
|
||||||
|
"rangeAmounts": "[{\"lowerCondition\":\"No Lower Limit\",\"lowerLimit\":0,\"upperCondition\":\"No Upper Limit\",\"upperLimit\":0,\"amount\":\"X * 0.19\",\"id\":\"rangeAmounts_1\"}]"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"id": "126",
|
||||||
|
"name": "DE - Basic Salary",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[\"1\"]",
|
||||||
|
"deductions": "[]",
|
||||||
|
"add_columns": "[]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "1",
|
||||||
|
"editable": "Yes",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "127",
|
||||||
|
"name": "DE - Car Allowance",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[\"3\"]",
|
||||||
|
"deductions": "[]",
|
||||||
|
"add_columns": "[]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "2",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "128",
|
||||||
|
"name": "DE - Hours Worked per Month",
|
||||||
|
"calculation_hook": "AttendanceUtil_getTimeWorkedHours",
|
||||||
|
"salary_components": "[]",
|
||||||
|
"deductions": "[]",
|
||||||
|
"add_columns": "[]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "3",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "129",
|
||||||
|
"name": "DE - Hourly Pay",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[\"5\"]",
|
||||||
|
"deductions": "[]",
|
||||||
|
"add_columns": "[]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "4",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "130",
|
||||||
|
"name": "DE - Payment for Hours Worked",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[]",
|
||||||
|
"deductions": "[]",
|
||||||
|
"add_columns": "[]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "5",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "[{\"name\":\"X\",\"column\":\"128\",\"id\":\"calculation_columns_1\"},{\"name\":\"Y\",\"column\":\"129\",\"id\":\"calculation_columns_2\"}]",
|
||||||
|
"calculation_function": "X * Y"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "131",
|
||||||
|
"name": "DE - Gross Salary",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[]",
|
||||||
|
"deductions": "[]",
|
||||||
|
"add_columns": "[\"126\",\"127\",\"130\"]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "6",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "132",
|
||||||
|
"name": "DE - Tax",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[]",
|
||||||
|
"deductions": "[\"112\"]",
|
||||||
|
"add_columns": "[]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "7",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "133",
|
||||||
|
"name": "DE - Net Salary",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[]",
|
||||||
|
"deductions": "[]",
|
||||||
|
"add_columns": "[\"131\"]",
|
||||||
|
"sub_columns": "[\"132\"]",
|
||||||
|
"colorder": "8",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"salaryComponents": [
|
||||||
|
{
|
||||||
|
"id": "1",
|
||||||
|
"name": "Basic Salary",
|
||||||
|
"componentType": "1",
|
||||||
|
"details": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "3",
|
||||||
|
"name": "Car Allowance",
|
||||||
|
"componentType": "2",
|
||||||
|
"details": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "5",
|
||||||
|
"name": "Regular Hourly Pay",
|
||||||
|
"componentType": "3",
|
||||||
|
"details": null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"salaryComponentTypes": [
|
||||||
|
{
|
||||||
|
"id": "1",
|
||||||
|
"code": "B001",
|
||||||
|
"name": "Basic"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "2",
|
||||||
|
"code": "B002",
|
||||||
|
"name": "Allowance"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "3",
|
||||||
|
"code": "B003",
|
||||||
|
"name": "Hourly"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"samplePayroll": {
|
||||||
|
"name": "Sample Country Payroll",
|
||||||
|
"pay_period": "4",
|
||||||
|
"columns": "[\"126\",\"127\",\"131\",\"129\",\"128\",\"133\",\"130\",\"132\"]",
|
||||||
|
"date_start": "2017-08-01",
|
||||||
|
"date_end": "2017-08-31",
|
||||||
|
"status": "Draft"
|
||||||
|
},
|
||||||
|
"payslipTemplate": {
|
||||||
|
"name": "Sample Payslip Template",
|
||||||
|
"data": "[{\"type\":\"Company Logo\",\"payrollColumn\":\"NULL\",\"label\":\"\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_1\"},{\"type\":\"Company Name\",\"payrollColumn\":\"NULL\",\"label\":\"\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_2\"},{\"type\":\"Separators\",\"payrollColumn\":\"NULL\",\"label\":\"\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_5\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"126\",\"label\":\"Basic Salary\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_3\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"127\",\"label\":\"Car Allowance\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_4\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"130\",\"label\":\"Payment for Hours Worked\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_6\"},{\"type\":\"Separators\",\"payrollColumn\":\"NULL\",\"label\":\"\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_7\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"131\",\"label\":\"Gross Pay\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_8\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"132\",\"label\":\"Tax 19%\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_9\"},{\"type\":\"Separators\",\"payrollColumn\":\"NULL\",\"label\":\"\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_10\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"133\",\"label\":\"Net Pay\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_11\"}]",
|
||||||
|
"status": null,
|
||||||
|
"created": "2017-09-08 21:12:40",
|
||||||
|
"updated": "2017-09-08 21:12:40"
|
||||||
|
}
|
||||||
|
}
|
||||||
264
core/data/payroll/SriLanka-Payroll.txt
Normal file
264
core/data/payroll/SriLanka-Payroll.txt
Normal file
@@ -0,0 +1,264 @@
|
|||||||
|
{
|
||||||
|
"name": "Sri Lanka Payroll Calculation",
|
||||||
|
"description": "",
|
||||||
|
"deductions": [
|
||||||
|
{
|
||||||
|
"id": "1",
|
||||||
|
"name": "EPF Employee Contribution",
|
||||||
|
"componentType": "[]",
|
||||||
|
"component": "[]",
|
||||||
|
"payrollColumn": "7",
|
||||||
|
"rangeAmounts": "[{\"lowerCondition\":\"No Lower Limit\",\"lowerLimit\":\"0\",\"upperCondition\":\"No Upper Limit\",\"upperLimit\":\"0\",\"amount\":\"X*0.08\",\"id\":\"rangeAmounts_1\"}]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "2",
|
||||||
|
"name": "EPF Employer Contribution",
|
||||||
|
"componentType": "[]",
|
||||||
|
"component": "[]",
|
||||||
|
"payrollColumn": "7",
|
||||||
|
"rangeAmounts": "[{\"lowerCondition\":\"No Lower Limit\",\"lowerLimit\":\"0\",\"upperCondition\":\"No Upper Limit\",\"upperLimit\":\"0\",\"amount\":\"X*0.12\",\"id\":\"rangeAmounts_1\"}]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "3",
|
||||||
|
"name": "ETF Employer Contribution",
|
||||||
|
"componentType": "[]",
|
||||||
|
"component": "[]",
|
||||||
|
"payrollColumn": "7",
|
||||||
|
"rangeAmounts": "[{\"lowerCondition\":\"No Lower Limit\",\"lowerLimit\":\"0\",\"upperCondition\":\"No Upper Limit\",\"upperLimit\":\"0\",\"amount\":\"X*0.03\",\"id\":\"rangeAmounts_1\"}]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "4",
|
||||||
|
"name": "PAYE Tax",
|
||||||
|
"componentType": "[]",
|
||||||
|
"component": "[]",
|
||||||
|
"payrollColumn": "12",
|
||||||
|
"rangeAmounts": "[{\"lowerCondition\":\"No Lower Limit\",\"lowerLimit\":\"0\",\"upperCondition\":\"lte\",\"upperLimit\":\"62500\",\"amount\":\"0\",\"id\":\"rangeAmounts_1\"},{\"lowerCondition\":\"gt\",\"lowerLimit\":\"62500\",\"upperCondition\":\"lte\",\"upperLimit\":\"104167\",\"amount\":\"X*0.04 - 2500\",\"id\":\"rangeAmounts_2\"},{\"lowerCondition\":\"gt\",\"lowerLimit\":\"104167\",\"upperCondition\":\"lte\",\"upperLimit\":\"145833\",\"amount\":\"X*0.08 - 6667\",\"id\":\"rangeAmounts_3\"},{\"lowerCondition\":\"gt\",\"lowerLimit\":\"145833\",\"upperCondition\":\"lte\",\"upperLimit\":\"187500\",\"amount\":\"X*0.12-12500\",\"id\":\"rangeAmounts_4\"},{\"lowerCondition\":\"gt\",\"lowerLimit\":\"187500\",\"upperCondition\":\"No Upper Limit\",\"upperLimit\":\"0\",\"amount\":\"X*0.16 - 20000\",\"id\":\"rangeAmounts_5\"}]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "5",
|
||||||
|
"name": "Stamp Duty",
|
||||||
|
"componentType": "[]",
|
||||||
|
"component": "[]",
|
||||||
|
"payrollColumn": "12",
|
||||||
|
"rangeAmounts": "[{\"lowerCondition\":\"No Lower Limit\",\"lowerLimit\":\"0\",\"upperCondition\":\"lte\",\"upperLimit\":\"25000\",\"amount\":\"0\",\"id\":\"rangeAmounts_1\"},{\"lowerCondition\":\"gt\",\"lowerLimit\":\"25000\",\"upperCondition\":\"No Upper Limit\",\"upperLimit\":\"0\",\"amount\":\"25\",\"id\":\"rangeAmounts_2\"}]"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"id": "5",
|
||||||
|
"name": "LK - Basic Salary",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[\"1\"]",
|
||||||
|
"deductions": "[]",
|
||||||
|
"add_columns": "[]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "5",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "6",
|
||||||
|
"name": "LK - Fixed Allowance",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[\"2\"]",
|
||||||
|
"deductions": "[]",
|
||||||
|
"add_columns": "[]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "6",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "7",
|
||||||
|
"name": "LK - Gross Pay",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[]",
|
||||||
|
"deductions": "[]",
|
||||||
|
"add_columns": "[\"5\",\"6\"]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "7",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "8",
|
||||||
|
"name": "LK - EPF Employee Contribution",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[]",
|
||||||
|
"deductions": "[\"1\"]",
|
||||||
|
"add_columns": "[]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "8",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "9",
|
||||||
|
"name": "LK - EPF Employer Contribution",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[]",
|
||||||
|
"deductions": "[\"2\"]",
|
||||||
|
"add_columns": "[]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "9",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "10",
|
||||||
|
"name": "LK - ETF Employer Contribution",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[]",
|
||||||
|
"deductions": "[\"3\"]",
|
||||||
|
"add_columns": "[]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "10",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "11",
|
||||||
|
"name": "LK - Total EPF 20%",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[]",
|
||||||
|
"deductions": "[]",
|
||||||
|
"add_columns": "[\"8\",\"9\"]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "11",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "12",
|
||||||
|
"name": "LK - Total for PAYE",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[]",
|
||||||
|
"deductions": "[]",
|
||||||
|
"add_columns": "[\"7\"]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "12",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "13",
|
||||||
|
"name": "LK - PAYE Tax",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[]",
|
||||||
|
"deductions": "[\"4\"]",
|
||||||
|
"add_columns": "[]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "13",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "14",
|
||||||
|
"name": "LK - Stamp Duty",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[]",
|
||||||
|
"deductions": "[\"5\"]",
|
||||||
|
"add_columns": "[]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "14",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "15",
|
||||||
|
"name": "LK - Total Deductions",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[]",
|
||||||
|
"deductions": "[]",
|
||||||
|
"add_columns": "[\"8\",\"13\",\"14\"]",
|
||||||
|
"sub_columns": "[]",
|
||||||
|
"colorder": "15",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "16",
|
||||||
|
"name": "LK - Salary to Bank",
|
||||||
|
"calculation_hook": null,
|
||||||
|
"salary_components": "[]",
|
||||||
|
"deductions": "[]",
|
||||||
|
"add_columns": "[\"7\"]",
|
||||||
|
"sub_columns": "[\"15\"]",
|
||||||
|
"colorder": "16",
|
||||||
|
"editable": "No",
|
||||||
|
"enabled": "Yes",
|
||||||
|
"default_value": "0.00",
|
||||||
|
"calculation_columns": "",
|
||||||
|
"calculation_function": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"salaryComponents": [
|
||||||
|
{
|
||||||
|
"id": "1",
|
||||||
|
"name": "Basic Salary",
|
||||||
|
"componentType": "1",
|
||||||
|
"details": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "2",
|
||||||
|
"name": "Fixed Allowance",
|
||||||
|
"componentType": "1",
|
||||||
|
"details": null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"salaryComponentTypes": [
|
||||||
|
{
|
||||||
|
"id": "1",
|
||||||
|
"code": "B001",
|
||||||
|
"name": "Basic"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"samplePayroll": {
|
||||||
|
"name": "Sri Lanka Payroll Sample",
|
||||||
|
"pay_period": "4",
|
||||||
|
"columns": "[\"5\",\"8\",\"9\",\"10\",\"6\",\"7\",\"13\",\"16\",\"14\",\"15\",\"11\",\"12\"]",
|
||||||
|
"date_start": "2016-03-01",
|
||||||
|
"date_end": "2016-03-31",
|
||||||
|
"status": "Draft"
|
||||||
|
},
|
||||||
|
"payslipTemplate": {
|
||||||
|
"name": "Sri Lanka - Default Payslip",
|
||||||
|
"data": "[{\"type\":\"Company Logo\",\"payrollColumn\":\"NULL\",\"label\":\"\",\"text\":\"\",\"fontSize\":\"Normal\",\"fontStyle\":\"Normal\",\"fontColor\":\"#000000\",\"status\":\"Show\",\"id\":\"data_1\"},{\"type\":\"Company Name\",\"payrollColumn\":\"NULL\",\"label\":\"\",\"text\":\"\",\"fontSize\":\"Normal\",\"fontStyle\":\"Normal\",\"fontColor\":\"\",\"status\":\"Show\",\"id\":\"data_2\"},{\"type\":\"Separators\",\"payrollColumn\":\"NULL\",\"label\":\"\",\"text\":\"\",\"fontSize\":\"Normal\",\"fontStyle\":\"Normal\",\"fontColor\":\"\",\"status\":\"Show\",\"id\":\"data_8\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"5\",\"label\":\"Basic Salary\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_3\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"6\",\"label\":\"Fixed Allowance\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_4\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"7\",\"label\":\"Gross Pay\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_11\"},{\"type\":\"Separators\",\"payrollColumn\":\"NULL\",\"label\":\"\",\"text\":\"\",\"fontSize\":\"Normal\",\"fontStyle\":\"Normal\",\"fontColor\":\"\",\"status\":\"Show\",\"id\":\"data_9\"},{\"type\":\"Text\",\"payrollColumn\":\"NULL\",\"label\":\"\",\"text\":\"Deductions\",\"status\":\"Show\",\"id\":\"data_13\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"8\",\"label\":\"EPF Employee Contribution\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_6\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"13\",\"label\":\"PAYE Tax\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_14\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"14\",\"label\":\"Stamp Duty\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_15\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"15\",\"label\":\"Total Deductions\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_16\"},{\"type\":\"Separators\",\"payrollColumn\":\"NULL\",\"label\":\"\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_17\"},{\"type\":\"Text\",\"payrollColumn\":\"NULL\",\"label\":\"\",\"text\":\"Employer Contributions\",\"status\":\"Show\",\"id\":\"data_18\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"9\",\"label\":\"EPF Employer Contribution\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_19\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"7\",\"label\":\"ETF Employer Contribution\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_20\"},{\"type\":\"Separators\",\"payrollColumn\":\"7\",\"label\":\"\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_21\"},{\"type\":\"Text\",\"payrollColumn\":\"7\",\"label\":\"\",\"text\":\"Totals\",\"status\":\"Show\",\"id\":\"data_22\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"11\",\"label\":\"Total EPF 20%\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_23\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"12\",\"label\":\"Total for PAYE\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_24\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"16\",\"label\":\"Net Salary\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_25\"}]",
|
||||||
|
"status": null,
|
||||||
|
"created": "2016-06-29 22:07:12",
|
||||||
|
"updated": "2016-06-29 22:07:12"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,8 +3,8 @@
|
|||||||
</div><!-- ./wrapper -->
|
</div><!-- ./wrapper -->
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
for (var prop in modJsList) {
|
for (var prop in modJsList) {
|
||||||
if(modJsList.hasOwnProperty(prop)){
|
if(modJsList.hasOwnProperty(prop)){
|
||||||
modJsList[prop].setPermissions(<?=json_encode($modulePermissions['perm'])?>);
|
modJsList[prop].setPermissions(<?=json_encode($modulePermissions['perm'])?>);
|
||||||
@@ -15,35 +15,23 @@
|
|||||||
modJsList[prop].setEmailTemplates(<?=json_encode($emailTemplates)?>);
|
modJsList[prop].setEmailTemplates(<?=json_encode($emailTemplates)?>);
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
modJsList[prop].setUser(<?=json_encode($user)?>);
|
modJsList[prop].setUser(<?=json_encode($user)?>);
|
||||||
//Test
|
//modJsList[prop].initFieldMasterData(null, modJs.loadingFunction);
|
||||||
<?php if(isset($_REQUEST['action']) && $_REQUEST['action'] == "new"){?>
|
modJsList[prop].initMasterDataReader();
|
||||||
if(modJsList[prop].newInitObject == undefined || modJsList[prop].newInitObject == null){
|
modJsList[prop].masterDataReader.updateAllMasterData()
|
||||||
modJsList[prop].initFieldMasterData(null,modJsList[prop].renderForm);
|
.then(() => {
|
||||||
}else{
|
modJs.loadingFunction();
|
||||||
modJsList[prop].initFieldMasterData(null,modJsList[prop].renderForm, modJsList[prop].newInitObject);
|
});
|
||||||
}
|
|
||||||
<?php }else{?>
|
|
||||||
modJsList[prop].initFieldMasterData(null, modJs.loadingFunction);
|
|
||||||
<?php }?>
|
|
||||||
modJsList[prop].setBaseUrl('<?=BASE_URL?>');
|
modJsList[prop].setBaseUrl('<?=BASE_URL?>');
|
||||||
modJsList[prop].setCurrentProfile(<?=json_encode($activeProfile)?>);
|
modJsList[prop].setCurrentProfile(<?=json_encode($activeProfile)?>);
|
||||||
modJsList[prop].setInstanceId('<?=$baseService->getInstanceId()?>');
|
modJsList[prop].setInstanceId('<?=$baseService->getInstanceId()?>');
|
||||||
modJsList[prop].setNoJSONRequests('<?=$noJSONRequests?>');
|
modJsList[prop].setNoJSONRequests('<?=$noJSONRequests?>');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//Other static js objects
|
|
||||||
|
|
||||||
var timeUtils = new TimeUtils();
|
|
||||||
timeUtils.setServerGMToffset('<?=$diffHoursBetweenServerTimezoneWithGMT?>');
|
|
||||||
|
|
||||||
var clientUrl = '<?=CLIENT_BASE_URL?>';
|
var clientUrl = '<?=CLIENT_BASE_URL?>';
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<?php include 'popups.php';?>
|
<?php include 'popups.php';?>
|
||||||
<?php include APP_BASE_PATH.'js/bootstrapDataTable.php';?>
|
<script src="<?=BASE_URL?>js/bootstrap-datatable.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,17 +1,27 @@
|
|||||||
<?php
|
<?php
|
||||||
$logoFileName = CLIENT_BASE_PATH."data/logo.png";
|
$logoFileUrl = \Classes\UIManager::getInstance()->getCompanyLogoUrl();
|
||||||
$logoFileUrl = CLIENT_BASE_URL."data/logo.png";
|
|
||||||
if(!file_exists($logoFileName)){
|
|
||||||
$logoFileUrl = BASE_URL."images/logo.png";
|
|
||||||
}
|
|
||||||
?><!DOCTYPE html>
|
?><!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
|
||||||
<title><?=$meta->title?></title>
|
<?php if (!empty(\Classes\BaseService::getInstance()->getGAKey())) { ?>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<!-- Google Analytics -->
|
||||||
<meta name="description" content="">
|
<script>
|
||||||
<meta name="author" content="">
|
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
|
||||||
|
ga('create', '<?=\Classes\BaseService::getInstance()->getGAKey()?>', 'auto');
|
||||||
|
ga('send', 'pageview');
|
||||||
|
</script>
|
||||||
|
<script async src='https://www.google-analytics.com/analytics.js'></script>
|
||||||
|
<!-- End Google Analytics -->
|
||||||
|
<?php } else { ?>
|
||||||
|
<script>window.ga = [];</script>
|
||||||
|
<?php } ?>
|
||||||
|
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title><?=$companyName?></title>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<link rel="shortcut icon" href="https://icehrm.s3.amazonaws.com/images/icon16.png">
|
||||||
|
<meta name="author" content="">
|
||||||
|
|
||||||
<link rel="image_src" href="<?=!empty($meta->imageUrl)?$meta->imageUrl:$logoFileUrl?>"/>
|
<link rel="image_src" href="<?=!empty($meta->imageUrl)?$meta->imageUrl:$logoFileUrl?>"/>
|
||||||
<meta property="og:image" content="<?=!empty($meta->imageUrl)?$meta->imageUrl:$logoFileUrl?>"/>
|
<meta property="og:image" content="<?=!empty($meta->imageUrl)?$meta->imageUrl:$logoFileUrl?>"/>
|
||||||
@@ -20,76 +30,20 @@ if(!file_exists($logoFileName)){
|
|||||||
<meta property="og:description" content="<?=$meta->description?>"/>
|
<meta property="og:description" content="<?=$meta->description?>"/>
|
||||||
|
|
||||||
|
|
||||||
<link href="<?=BASE_URL?>themecss/bootstrap.min.css" rel="stylesheet">
|
<link href="<?=BASE_URL?>dist/third-party.css?v=<?=$cssVersion?>" rel="stylesheet">
|
||||||
<link href="<?=BASE_URL?>themecss/font-awesome.min.css" rel="stylesheet">
|
<script type="text/javascript" src="<?=BASE_URL?>dist/third-party.js?v=<?=$jsVersion?>"></script>
|
||||||
<link href="<?=BASE_URL?>themecss/ionicons.min.css" rel="stylesheet">
|
<script type="text/javascript" src="<?=BASE_URL?>dist/common.js?v=<?=$jsVersion?>"></script>
|
||||||
|
|
||||||
|
<!-- Can not bundle - Start-->
|
||||||
|
<script src="<?=BASE_URL?>js/jquery.timepicker.js"></script>
|
||||||
|
<script src="<?=BASE_URL?>js/bootstrap-datetimepicker.js"></script>
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>js/jquery2.0.2.min.js"></script>
|
<link href="<?=BASE_URL?>bower_components/flag-icon-css/css/flag-icon.min.css" rel="stylesheet">
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>js/jquery-ui.js"></script>
|
<!-- Can not bundle - End-->
|
||||||
|
<?php include 'modulejslibs.inc.php'; ?>
|
||||||
<script src="<?=BASE_URL?>themejs/bootstrap.js"></script>
|
<script>
|
||||||
<script src="<?=BASE_URL?>js/jquery.placeholder.js"></script>
|
var baseUrl = '<?=CLIENT_BASE_URL?>service.php';
|
||||||
<script src="<?=BASE_URL?>js/base64.js"></script>
|
var CLIENT_BASE_URL = '<?=CLIENT_BASE_URL?>';
|
||||||
|
</script>
|
||||||
|
|
||||||
<script src="<?=BASE_URL?>js/bootstrap-datepicker.js"></script>
|
|
||||||
<script src="<?=BASE_URL?>js/jquery.timepicker.js"></script>
|
|
||||||
<script src="<?=BASE_URL?>js/bootstrap-datetimepicker.js"></script>
|
|
||||||
<script src="<?=BASE_URL?>js/fullcalendar.min.js"></script>
|
|
||||||
<script src="<?=BASE_URL?>js/select2/select2.min.js"></script>
|
|
||||||
<script src="<?=BASE_URL?>js/bootstrap-colorpicker-2.1.1/js/bootstrap-colorpicker.min.js"></script>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link href="<?=BASE_URL?>themecss/datatables/dataTables.bootstrap.css" rel="stylesheet">
|
|
||||||
<link href="<?=BASE_URL?>css/jquery.timepicker.css" rel="stylesheet">
|
|
||||||
<link href="<?=BASE_URL?>css/datepicker.css" rel="stylesheet">
|
|
||||||
<link href="<?=BASE_URL?>css/bootstrap-datetimepicker.min.css" rel="stylesheet">
|
|
||||||
<link href="<?=BASE_URL?>css/fullcalendar.css" rel="stylesheet">
|
|
||||||
<link href="<?=BASE_URL?>js/select2/select2.css" rel="stylesheet">
|
|
||||||
<link href="<?=BASE_URL?>js/bootstrap-colorpicker-2.1.1/css/bootstrap-colorpicker.min.css" rel="stylesheet">
|
|
||||||
|
|
||||||
|
|
||||||
<link href="<?=BASE_URL?>themecss/AdminLTE.css" rel="stylesheet">
|
|
||||||
|
|
||||||
<script src="<?=BASE_URL?>themejs/plugins/datatables/jquery.dataTables.js"></script>
|
|
||||||
<script src="<?=BASE_URL?>themejs/plugins/datatables/dataTables.bootstrap.js"></script>
|
|
||||||
<script src="<?=BASE_URL?>themejs/AdminLTE/app.js"></script>
|
|
||||||
|
|
||||||
|
|
||||||
<link href="<?=BASE_URL?>css/style.css?v=<?=$cssVersion?>" rel="stylesheet">
|
|
||||||
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>bower_components/tinymce/tinymce.min.js"></script>
|
|
||||||
<link href="<?=BASE_URL?>bower_components/simplemde/dist/simplemde.min.css" rel="stylesheet">
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>bower_components/simplemde/dist/simplemde.min.js"></script>
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>js/signature_pad.js"></script>
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>js/date.js"></script>
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>js/json2.js"></script>
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>js/CrockfordInheritance.v0.1.js"></script>
|
|
||||||
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>api/Base.js?v=<?=$jsVersion?>"></script>
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>api/AdapterBase.js?v=<?=$jsVersion?>"></script>
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>api/FormValidation.js?v=<?=$jsVersion?>"></script>
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>api/Notifications.js?v=<?=$jsVersion?>"></script>
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>api/TimeUtils.js?v=<?=$jsVersion?>"></script>
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>api/AesCrypt.js?v=<?=$jsVersion?>"></script>
|
|
||||||
<?php include APP_BASE_PATH.'/modulejslibs.inc.php';?>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
|
||||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
|
||||||
<!--[if lt IE 9]>
|
|
||||||
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
|
|
||||||
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
<script>
|
|
||||||
var baseUrl = '<?=CLIENT_BASE_URL?>service.php';
|
|
||||||
var CLIENT_BASE_URL = '<?=CLIENT_BASE_URL?>';
|
|
||||||
</script>
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>js/app-global.js"></script>
|
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|||||||
@@ -78,8 +78,8 @@ class qqFileUploader {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$size = $this->file->getSize();
|
$size = $this->file->getSize();
|
||||||
\Utils\LogManager::getInstance()->info('file size ='.$size);
|
\Utils\LogManager::getInstance()->debug('file size ='.$size);
|
||||||
\Utils\LogManager::getInstance()->info('file size limit ='.$this->sizeLimit);
|
\Utils\LogManager::getInstance()->debug('file size limit ='.$this->sizeLimit);
|
||||||
if ($size == 0) {
|
if ($size == 0) {
|
||||||
return array('success'=>0,'error' => 'File is empty');
|
return array('success'=>0,'error' => 'File is empty');
|
||||||
}
|
}
|
||||||
@@ -127,9 +127,6 @@ if(empty($saveFileName) || $saveFileName == "_NEW_"){
|
|||||||
$saveFileName = str_replace(".", "-", $saveFileName);
|
$saveFileName = str_replace(".", "-", $saveFileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
$file = new \Model\File();
|
|
||||||
$file->Load("name = ?",array($saveFileName));
|
|
||||||
|
|
||||||
// list of valid extensions, ex. array("jpeg", "xml", "bmp")
|
// list of valid extensions, ex. array("jpeg", "xml", "bmp")
|
||||||
|
|
||||||
$allowedExtensions = explode(',', "csv,doc,xls,docx,xlsx,txt,ppt,pptx,rtf,pdf,xml,jpg,bmp,gif,png,jpeg");
|
$allowedExtensions = explode(',', "csv,doc,xls,docx,xlsx,txt,ppt,pptx,rtf,pdf,xml,jpg,bmp,gif,png,jpeg");
|
||||||
@@ -149,9 +146,6 @@ $s3WebUrl = \Classes\SettingsManager::getInstance()->getSetting("Files: S3 Web U
|
|||||||
|
|
||||||
$uploadedToS3 = false;
|
$uploadedToS3 = false;
|
||||||
|
|
||||||
\Utils\LogManager::getInstance()->info(
|
|
||||||
$uploadFilesToS3."|".$uploadFilesToS3Key."|".$uploadFilesToS3Secret."|".$s3Bucket."|".$s3WebUrl."|".CLIENT_NAME
|
|
||||||
);
|
|
||||||
$localFile = CLIENT_BASE_PATH.'data/'.$result['filename'];
|
$localFile = CLIENT_BASE_PATH.'data/'.$result['filename'];
|
||||||
$f_size = filesize($localFile);
|
$f_size = filesize($localFile);
|
||||||
if($uploadFilesToS3.'' == '1' && !empty($uploadFilesToS3Key) && !empty($uploadFilesToS3Secret) &&
|
if($uploadFilesToS3.'' == '1' && !empty($uploadFilesToS3Key) && !empty($uploadFilesToS3Secret) &&
|
||||||
@@ -159,9 +153,9 @@ if($uploadFilesToS3.'' == '1' && !empty($uploadFilesToS3Key) && !empty($uploadFi
|
|||||||
|
|
||||||
|
|
||||||
$uploadname = CLIENT_NAME."/".$result['filename'];
|
$uploadname = CLIENT_NAME."/".$result['filename'];
|
||||||
\Utils\LogManager::getInstance()->info("Upload file to s3:".$uploadname);
|
\Utils\LogManager::getInstance()->debug("Upload file to s3:".$uploadname);
|
||||||
\Utils\LogManager::getInstance()->info("Local file:".$localFile);
|
\Utils\LogManager::getInstance()->debug("Local file:".$localFile);
|
||||||
\Utils\LogManager::getInstance()->info("Local file size:".$f_size);
|
\Utils\LogManager::getInstance()->debug("Local file size:".$f_size);
|
||||||
|
|
||||||
|
|
||||||
$s3FileSys = new \Classes\S3FileSystem($uploadFilesToS3Key, $uploadFilesToS3Secret);
|
$s3FileSys = new \Classes\S3FileSystem($uploadFilesToS3Key, $uploadFilesToS3Secret);
|
||||||
@@ -176,10 +170,17 @@ if($uploadFilesToS3.'' == '1' && !empty($uploadFilesToS3Key) && !empty($uploadFi
|
|||||||
}
|
}
|
||||||
|
|
||||||
if($result['success'] == 1){
|
if($result['success'] == 1){
|
||||||
|
if ($_POST['file_group'] === 'profile_image' && !empty($_POST['user'])) {
|
||||||
|
\Classes\FileService::getInstance()->deleteProfileImage(intval($_POST['user']));
|
||||||
|
}
|
||||||
|
|
||||||
|
$file = new \Model\File();
|
||||||
|
$file->Load("name = ?",array($saveFileName));
|
||||||
$file->name = $saveFileName;
|
$file->name = $saveFileName;
|
||||||
$file->filename = $result['filename'];
|
$file->filename = $result['filename'];
|
||||||
$signInMappingField = SIGN_IN_ELEMENT_MAPPING_FIELD_NAME;
|
$signInMappingField = SIGN_IN_ELEMENT_MAPPING_FIELD_NAME;
|
||||||
$file->$signInMappingField = $_POST['user']=="_NONE_"?null:$_POST['user'];
|
$file->$signInMappingField = $_POST['user']=="_NONE_"?null:$_POST['user'];
|
||||||
|
|
||||||
$file->file_group = $_POST['file_group'];
|
$file->file_group = $_POST['file_group'];
|
||||||
$file->size = $f_size;
|
$file->size = $f_size;
|
||||||
$file->size_text = \Classes\FileService::getInstance()->getReadableSize($f_size);
|
$file->size_text = \Classes\FileService::getInstance()->getReadableSize($f_size);
|
||||||
|
|||||||
@@ -22,7 +22,8 @@ if($_REQUEST['file_type']=="image"){
|
|||||||
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
<head>
|
<head>
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>js/jquery-1.5.2.js"></script>
|
<script type="text/javascript" src="<?=BASE_URL?>js/jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="<?=BASE_URL?>js/jquery.form.js"></script>
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>js/date.js"></script>
|
<script type="text/javascript" src="<?=BASE_URL?>js/date.js"></script>
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>js/json2.js"></script>
|
<script type="text/javascript" src="<?=BASE_URL?>js/json2.js"></script>
|
||||||
|
|
||||||
|
|||||||
@@ -15,40 +15,21 @@
|
|||||||
<?php if(isset($emailTemplates)){?>
|
<?php if(isset($emailTemplates)){?>
|
||||||
modJsList[prop].setEmailTemplates(<?=json_encode($emailTemplates)?>);
|
modJsList[prop].setEmailTemplates(<?=json_encode($emailTemplates)?>);
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
modJsList[prop].setUser(<?=json_encode($user)?>);
|
modJsList[prop].setUser(<?=json_encode(\Classes\BaseService::getInstance()->cleanUpUser($user))?>);
|
||||||
<?php if(isset($_REQUEST['action']) && $_REQUEST['action'] == "new"){?>
|
modJsList[prop].initSourceMappings();
|
||||||
if(modJsList[prop].newInitObject == undefined || modJsList[prop].newInitObject == null){
|
|
||||||
modJsList[prop].initFieldMasterData(null,modJsList[prop].renderForm);
|
|
||||||
}else{
|
|
||||||
modJsList[prop].initFieldMasterData(null,modJsList[prop].renderForm, modJsList[prop].newInitObject);
|
|
||||||
}
|
|
||||||
<?php }else{ ?>
|
|
||||||
if(modJsList[prop].initialFilter != null && modJsList[prop].initialFilter != undefined){
|
|
||||||
modJsList[prop].initFieldMasterData(null,modJsList[prop].setFilterExternal);
|
|
||||||
}else{
|
|
||||||
modJsList[prop].initFieldMasterData();
|
|
||||||
}
|
|
||||||
|
|
||||||
<?php } ?>
|
|
||||||
modJsList[prop].setBaseUrl('<?=BASE_URL?>');
|
modJsList[prop].setBaseUrl('<?=BASE_URL?>');
|
||||||
modJsList[prop].setCurrentProfile(<?=json_encode($activeProfile)?>);
|
modJsList[prop].setCurrentProfile(<?=json_encode($activeProfile)?>);
|
||||||
modJsList[prop].setInstanceId('<?=\Classes\BaseService::getInstance()->getInstanceId()?>');
|
modJsList[prop].setInstanceId('<?=\Classes\BaseService::getInstance()->getInstanceId()?>');
|
||||||
modJsList[prop].setGoogleAnalytics(ga);
|
modJsList[prop].setGoogleAnalytics(ga);
|
||||||
modJsList[prop].setNoJSONRequests('<?=\Classes\SettingsManager::getInstance()->getSetting("System: Do not pass JSON in request")?>');
|
modJsList[prop].setNoJSONRequests('<?=\Classes\SettingsManager::getInstance()->getSetting("System: Do not pass JSON in request")?>');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//Other static js objects
|
//Other static js objects
|
||||||
|
var timeUtils = setupTimeUtils('<?=$diffHoursBetweenServerTimezoneWithGMT?>');
|
||||||
var timeUtils = new TimeUtils();
|
var notificationManager = setupNotifications('<?=CLIENT_BASE_URL?>service.php');
|
||||||
timeUtils.setServerGMToffset('<?=$diffHoursBetweenServerTimezoneWithGMT?>');
|
|
||||||
|
|
||||||
var notificationManager = new NotificationManager();
|
|
||||||
notificationManager.setBaseUrl('<?=CLIENT_BASE_URL?>service.php');
|
|
||||||
notificationManager.setTimeUtils(timeUtils);
|
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
$notificationTemplates = array();
|
$notificationTemplates = array();
|
||||||
@@ -68,8 +49,17 @@
|
|||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
$(this).tab('show');
|
$(this).tab('show');
|
||||||
modJs = modJsList[$(this).attr('id')];
|
modJs = modJsList[$(this).attr('id')];
|
||||||
modJs.get([]);
|
modJs.get([]);
|
||||||
modJs.initFieldMasterData();
|
|
||||||
|
// Do not load master data for new types of tables
|
||||||
|
if (!modJs.isV2) {
|
||||||
|
if(modJs.initialFilter != null){
|
||||||
|
modJs.initFieldMasterData(null,modJs.setFilterExternal);
|
||||||
|
} else {
|
||||||
|
modJs.initFieldMasterData();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var helpLink = modJs.getHelpLink();
|
var helpLink = modJs.getHelpLink();
|
||||||
if(helpLink != null && helpLink != undefined){
|
if(helpLink != null && helpLink != undefined){
|
||||||
$('.helpLink').attr('href',helpLink);
|
$('.helpLink').attr('href',helpLink);
|
||||||
@@ -77,20 +67,23 @@
|
|||||||
}else{
|
}else{
|
||||||
$('.helpLink').hide();
|
$('.helpLink').hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
for (var modName in modJsList) {
|
||||||
|
modJsList[modName].setApiUrl('<?=$restApiBase?>');
|
||||||
|
modJsList[modName].setupApiClient($('#jt').attr('t'));
|
||||||
|
}
|
||||||
|
|
||||||
var tabName = window.location.hash.substr(1);
|
var tabName = window.location.hash.substr(1);
|
||||||
|
|
||||||
if(tabName!= undefined && tabName != "" && modJsList[tabName] != undefined && modJsList[tabName] != null){
|
if(tabName!= undefined && tabName != "" && modJsList[tabName] != undefined && modJsList[tabName] != null){
|
||||||
$("#"+tabName).click();
|
$("#"+tabName).click();
|
||||||
}else{
|
}else{
|
||||||
<?php if(!isset($_REQUEST['action']) && $_REQUEST['action'] != "new"){?>
|
<?php if(!isset($_REQUEST['action'])){?>
|
||||||
modJs.get([]);
|
modJs.get([]);
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
notificationManager.getNotifications();
|
notificationManager.getNotifications();
|
||||||
|
|
||||||
$("#delegationDiv").on('click', "#notifications", function(e) {
|
$("#delegationDiv").on('click', "#notifications", function(e) {
|
||||||
@@ -109,7 +102,18 @@
|
|||||||
$('.helpLink').hide();
|
$('.helpLink').hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$(this).scrollTop(0);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (!modJs.isV2) {
|
||||||
|
if(modJs.initialFilter != null){
|
||||||
|
modJs.initFieldMasterData(null,modJs.setFilterExternal);
|
||||||
|
} else {
|
||||||
|
modJs.initFieldMasterData();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var clientUrl = '<?=CLIENT_BASE_URL?>';
|
var clientUrl = '<?=CLIENT_BASE_URL?>';
|
||||||
|
|
||||||
var modulesInstalled = <?=json_encode(\Classes\BaseService::getInstance()->getModuleManagerNames())?>;
|
var modulesInstalled = <?=json_encode(\Classes\BaseService::getInstance()->getModuleManagerNames())?>;
|
||||||
@@ -143,6 +147,7 @@
|
|||||||
|
|
||||||
</script>
|
</script>
|
||||||
<?php include 'popups.php';?>
|
<?php include 'popups.php';?>
|
||||||
<?php include APP_BASE_PATH.'js/bootstrapDataTable.php';?>
|
<script src="<?=BASE_URL?>js/bootstrap-datatable.js"></script>
|
||||||
|
<div id="jt" t="<?=$jwtService->create(3600)?>"></div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
145
core/header.php
145
core/header.php
@@ -1,25 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
|
||||||
This file is part of Ice Framework.
|
|
||||||
|
|
||||||
Ice Framework is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
Ice Framework is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with Ice Framework. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
------------------------------------------------------------------
|
|
||||||
|
|
||||||
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
|
|
||||||
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
|
|
||||||
*/
|
|
||||||
if (!defined('MODULE_NAME')) {
|
if (!defined('MODULE_NAME')) {
|
||||||
define('MODULE_NAME', $moduleName);
|
define('MODULE_NAME', $moduleName);
|
||||||
}
|
}
|
||||||
@@ -89,17 +68,31 @@ $meta = json_decode(file_get_contents(MODULE_PATH."/meta.json"),true);
|
|||||||
|
|
||||||
include('configureUIManager.php');
|
include('configureUIManager.php');
|
||||||
|
|
||||||
|
$chatUserProfile = \Classes\UIManager::getInstance()->getCurrentProfile();
|
||||||
|
|
||||||
|
if (defined('SYM_CLIENT')) {
|
||||||
|
$restApiBase = WEB_APP_BASE_URL.'/api/'.SYM_CLIENT.'/';
|
||||||
|
} else if (defined('REST_API_BASE')){
|
||||||
|
$restApiBase = REST_API_BASE;
|
||||||
|
} else {
|
||||||
|
$restApiBase = CLIENT_BASE_URL.'api/';
|
||||||
|
}
|
||||||
|
|
||||||
?><!DOCTYPE html>
|
?><!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<!-- Google Analytics -->
|
<?php if (!empty(\Classes\BaseService::getInstance()->getGAKey())) { ?>
|
||||||
<script>
|
<!-- Google Analytics -->
|
||||||
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
|
<script>
|
||||||
ga('create', '<?=\Classes\BaseService::getInstance()->getGAKey()?>', 'auto');
|
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
|
||||||
ga('send', 'pageview');
|
ga('create', '<?=\Classes\BaseService::getInstance()->getGAKey()?>', 'auto');
|
||||||
</script>
|
ga('send', 'pageview');
|
||||||
<script async src='https://www.google-analytics.com/analytics.js'></script>
|
</script>
|
||||||
<!-- End Google Analytics -->
|
<script async src='https://www.google-analytics.com/analytics.js'></script>
|
||||||
|
<!-- End Google Analytics -->
|
||||||
|
<?php } else { ?>
|
||||||
|
<script>window.ga = [];</script>
|
||||||
|
<?php } ?>
|
||||||
|
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<title><?=$companyName?></title>
|
<title><?=$companyName?></title>
|
||||||
@@ -108,86 +101,20 @@ include('configureUIManager.php');
|
|||||||
<meta name="description" content="">
|
<meta name="description" content="">
|
||||||
<meta name="author" content="">
|
<meta name="author" content="">
|
||||||
|
|
||||||
<link href="<?=BASE_URL?>themecss/bootstrap.min.css" rel="stylesheet">
|
<link href="<?=BASE_URL?>dist/third-party.css?v=<?=$cssVersion?>" rel="stylesheet">
|
||||||
<link href="<?=BASE_URL?>themecss/font-awesome.min.css" rel="stylesheet">
|
<script type="text/javascript" src="<?=BASE_URL?>dist/third-party.js?v=<?=$jsVersion?>"></script>
|
||||||
<link href="<?=BASE_URL?>themecss/ionicons.min.css" rel="stylesheet">
|
<script type="text/javascript" src="<?=BASE_URL?>dist/common.js?v=<?=$jsVersion?>"></script>
|
||||||
<link href="<?=BASE_URL?>bower_components/material-design-icons/iconfont/material-icons.css" rel="stylesheet">
|
|
||||||
|
|
||||||
|
<!-- Can not bundle - Start-->
|
||||||
|
|
||||||
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>js/jquery2.0.2.min.js"></script>
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>js/jquery-ui.js"></script>
|
|
||||||
|
|
||||||
<script src="<?=BASE_URL?>themejs/bootstrap.js"></script>
|
|
||||||
<script src="<?=BASE_URL?>js/jquery.placeholder.js"></script>
|
|
||||||
<script src="<?=BASE_URL?>js/base64.js"></script>
|
|
||||||
|
|
||||||
|
|
||||||
<script src="<?=BASE_URL?>js/bootstrap-datepicker.js"></script>
|
|
||||||
<script src="<?=BASE_URL?>js/jquery.timepicker.js"></script>
|
<script src="<?=BASE_URL?>js/jquery.timepicker.js"></script>
|
||||||
<script src="<?=BASE_URL?>js/bootstrap-datetimepicker.js"></script>
|
<script src="<?=BASE_URL?>js/bootstrap-datetimepicker.js"></script>
|
||||||
<script src="<?=BASE_URL?>js/select2/select2.min.js"></script>
|
|
||||||
<script src="<?=BASE_URL?>js/bootstrap-colorpicker-2.1.1/js/bootstrap-colorpicker.min.js"></script>
|
|
||||||
|
|
||||||
<!--fullcaledar-->
|
|
||||||
|
|
||||||
<link href="<?=BASE_URL?>js/fullcaledar/fullcalendar.css" rel="stylesheet">
|
|
||||||
<link href="<?=BASE_URL?>js/fullcaledar/fullcalendar.print.css" rel="stylesheet" media="print">
|
|
||||||
<script src="<?=BASE_URL?>js/fullcaledar/lib/moment.min.js"></script>
|
|
||||||
<script src="<?=BASE_URL?>js/fullcaledar/fullcalendar.min.js"></script>
|
|
||||||
|
|
||||||
<script src="<?=BASE_URL?>js/clipboard.js"></script>
|
|
||||||
|
|
||||||
<link href="<?=BASE_URL?>themecss/datatables/dataTables.bootstrap.css" rel="stylesheet">
|
|
||||||
<link href="<?=BASE_URL?>css/jquery.timepicker.css" rel="stylesheet">
|
|
||||||
<link href="<?=BASE_URL?>css/datepicker.css" rel="stylesheet">
|
|
||||||
<link href="<?=BASE_URL?>css/bootstrap-datetimepicker.min.css" rel="stylesheet">
|
|
||||||
<link href="<?=BASE_URL?>js/select2/select2.css" rel="stylesheet">
|
|
||||||
<link href="<?=BASE_URL?>js/bootstrap-colorpicker-2.1.1/css/bootstrap-colorpicker.min.css" rel="stylesheet">
|
|
||||||
<link href="<?=BASE_URL?>bower_components/flag-icon-css/css/flag-icon.min.css" rel="stylesheet">
|
<link href="<?=BASE_URL?>bower_components/flag-icon-css/css/flag-icon.min.css" rel="stylesheet">
|
||||||
|
<!-- Can not bundle - End-->
|
||||||
|
|
||||||
<link href="<?=BASE_URL?>themecss/AdminLTE.css" rel="stylesheet">
|
|
||||||
|
|
||||||
<script src="<?=BASE_URL?>themejs/plugins/datatables/jquery.dataTables.js?v=<?=$jsVersion?>"></script>
|
|
||||||
<script src="<?=BASE_URL?>themejs/plugins/datatables/dataTables.bootstrap.js?v=<?=$jsVersion?>"></script>
|
|
||||||
<script src="<?=BASE_URL?>themejs/AdminLTE/app.js?v=<?=$jsVersion?>"></script>
|
|
||||||
|
|
||||||
|
|
||||||
<link href="<?=BASE_URL?>css/style.css?v=<?=$cssVersion?>" rel="stylesheet">
|
|
||||||
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>bower_components/tinymce/tinymce.min.js"></script>
|
|
||||||
<link href="<?=BASE_URL?>bower_components/simplemde/dist/simplemde.min.css" rel="stylesheet">
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>bower_components/simplemde/dist/simplemde.min.js"></script>
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>bower_components/inputmask/dist/min/jquery.inputmask.bundle.min.js"></script>
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>js/signature_pad.js"></script>
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>js/date.js"></script>
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>js/json2.js"></script>
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>js/CrockfordInheritance.v0.1.js"></script>
|
|
||||||
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>api/Base.js?v=<?=$jsVersion?>"></script>
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>api/AdapterBase.js?v=<?=$jsVersion?>"></script>
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>api/FormValidation.js?v=<?=$jsVersion?>"></script>
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>api/Notifications.js?v=<?=$jsVersion?>"></script>
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>api/TimeUtils.js?v=<?=$jsVersion?>"></script>
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>api/ConversationsAdapter.js?v=<?=$jsVersion?>"></script>
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>api/AesCrypt.js?v=<?=$jsVersion?>"></script>
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>api/SocialShare.js?v=<?=$jsVersion?>"></script>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
|
||||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
|
||||||
<!--[if lt IE 9]>
|
|
||||||
<script src="<?=BASE_URL?>js/html5shiv.js"></script>
|
|
||||||
<script src="<?=BASE_URL?>js/respond.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
<script>
|
<script>
|
||||||
var baseUrl = '<?=CLIENT_BASE_URL?>service.php';
|
var baseUrl = '<?=CLIENT_BASE_URL?>service.php';
|
||||||
var CLIENT_BASE_URL = '<?=CLIENT_BASE_URL?>';
|
var CLIENT_BASE_URL = '<?=CLIENT_BASE_URL?>';
|
||||||
</script>
|
</script>
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>js/app-global.js"></script>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body class="skin-blue" data-turbolinks="false">
|
<body class="skin-blue" data-turbolinks="false">
|
||||||
@@ -214,6 +141,9 @@ include('configureUIManager.php');
|
|||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
</header>
|
</header>
|
||||||
|
<?php if(\Classes\UIManager::getInstance()->getCurrentLanguageCode() === 'ar') {?>
|
||||||
|
<link href="<?=BASE_URL?>css/rtl.css" rel="stylesheet">
|
||||||
|
<?php } ?>
|
||||||
<div class="wrapper row-offcanvas row-offcanvas-left">
|
<div class="wrapper row-offcanvas row-offcanvas-left">
|
||||||
<div id="iceloader" style="
|
<div id="iceloader" style="
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -236,7 +166,7 @@ include('configureUIManager.php');
|
|||||||
<ul class="sidebar-menu">
|
<ul class="sidebar-menu">
|
||||||
|
|
||||||
|
|
||||||
<?php if($user->user_level == 'Admin' || $user->user_level == 'Manager' || $user->user_level == 'Other'){?>
|
<?php if($user->user_level == 'Admin' || $user->user_level == 'Manager' || $user->user_level == 'Restricted Admin' || $user->user_level == 'Restricted Manager'){?>
|
||||||
|
|
||||||
<?php foreach($adminModules as $menu){?>
|
<?php foreach($adminModules as $menu){?>
|
||||||
<?php if(count($menu['menu']) == 0){continue;}?>
|
<?php if(count($menu['menu']) == 0){continue;}?>
|
||||||
@@ -327,19 +257,6 @@ include('configureUIManager.php');
|
|||||||
|
|
||||||
<!-- Right side column. Contains the navbar and content of the page -->
|
<!-- Right side column. Contains the navbar and content of the page -->
|
||||||
<aside class="right-side">
|
<aside class="right-side">
|
||||||
<!-- Content Header (Page header) -->
|
|
||||||
<section class="content-header">
|
|
||||||
<h1>
|
|
||||||
<?=\Classes\LanguageManager::tran($meta['label'])?>
|
|
||||||
<small>
|
|
||||||
<?=\Classes\LanguageManager::tran($meta['menu'])?>  
|
|
||||||
</small>
|
|
||||||
</h1>
|
|
||||||
<a href="#" class="helpLink" target="_blank"
|
|
||||||
style="display:none;color:#f4f4f4;font-size: 2.3rem;float: right;margin-top: -30px;text-shadow: 1px 1px 2px black, 0 0 25px #367fa9, 0 0 5px #367fa9;">
|
|
||||||
<i class="fa fa-question-circle"></i></a>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- Main content -->
|
<!-- Main content -->
|
||||||
<section class="content">
|
<section class="content">
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
use Classes\Common\IceContainer;
|
||||||
|
use Classes\LanguageManager;
|
||||||
|
use Utils\InputCleaner;
|
||||||
|
|
||||||
ini_set('display_errors', false);
|
ini_set('display_errors', false);
|
||||||
error_reporting(E_ERROR);
|
error_reporting(E_ERROR);
|
||||||
require dirname(__FILE__).'/lib/composer/vendor/autoload.php';
|
require dirname(__FILE__).'/lib/composer/vendor/autoload.php';
|
||||||
@@ -8,9 +13,11 @@ require dirname(__FILE__).'/lib/composer/vendor/autoload.php';
|
|||||||
//$whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler());
|
//$whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler());
|
||||||
//$whoops->register();
|
//$whoops->register();
|
||||||
|
|
||||||
|
$container = new IceContainer();
|
||||||
|
|
||||||
function t($text)
|
function t($text)
|
||||||
{
|
{
|
||||||
return \Classes\LanguageManager::translateTnrText($text);
|
return LanguageManager::translateTnrText($text);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!defined('TAGS_TO_PRESERVE')){define('TAGS_TO_PRESERVE','');}
|
if(!defined('TAGS_TO_PRESERVE')){define('TAGS_TO_PRESERVE','');}
|
||||||
@@ -18,9 +25,9 @@ $jsVersion = defined('CACHE_VALUE')?CACHE_VALUE:"v".VERSION;
|
|||||||
$cssVersion = defined('CACHE_VALUE')?CACHE_VALUE:"v".VERSION;
|
$cssVersion = defined('CACHE_VALUE')?CACHE_VALUE:"v".VERSION;
|
||||||
|
|
||||||
if(!isset($_REQUEST['content']) || $_REQUEST['content'] != 'HTML'){
|
if(!isset($_REQUEST['content']) || $_REQUEST['content'] != 'HTML'){
|
||||||
$_REQUEST = \Utils\InputCleaner::cleanParameters($_REQUEST);
|
$_REQUEST = InputCleaner::cleanParameters($_REQUEST);
|
||||||
$_GET = \Utils\InputCleaner::cleanParameters($_GET);
|
$_GET = InputCleaner::cleanParameters($_GET);
|
||||||
$_POST = \Utils\InputCleaner::cleanParameters($_POST);
|
$_POST = InputCleaner::cleanParameters($_POST);
|
||||||
}
|
}
|
||||||
|
|
||||||
date_default_timezone_set('Asia/Colombo');
|
date_default_timezone_set('Asia/Colombo');
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ $fieldTemplates['colorpick'] = file_get_contents(CLIENT_PATH.'/templates/fields/
|
|||||||
$fieldTemplates['signature'] = file_get_contents(CLIENT_PATH.'/templates/fields/signature.html');
|
$fieldTemplates['signature'] = file_get_contents(CLIENT_PATH.'/templates/fields/signature.html');
|
||||||
$fieldTemplates['simplemde'] = file_get_contents(CLIENT_PATH.'/templates/fields/simplemde.html');
|
$fieldTemplates['simplemde'] = file_get_contents(CLIENT_PATH.'/templates/fields/simplemde.html');
|
||||||
$fieldTemplates['tinymce'] = file_get_contents(CLIENT_PATH.'/templates/fields/tinymce.html');
|
$fieldTemplates['tinymce'] = file_get_contents(CLIENT_PATH.'/templates/fields/tinymce.html');
|
||||||
|
$fieldTemplates['code'] = file_get_contents(CLIENT_PATH.'/templates/fields/code.html');
|
||||||
|
|
||||||
$templates = array();
|
$templates = array();
|
||||||
$templates['formTemplate'] = file_get_contents(CLIENT_PATH.'/templates/form_template.html');
|
$templates['formTemplate'] = file_get_contents(CLIENT_PATH.'/templates/form_template.html');
|
||||||
|
|||||||
1992
core/lang/al.po
Normal file
1992
core/lang/al.po
Normal file
File diff suppressed because it is too large
Load Diff
1989
core/lang/ar.po
Normal file
1989
core/lang/ar.po
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1903,3 +1903,87 @@ msgstr "Gespräche"
|
|||||||
|
|
||||||
msgid "Start Now"
|
msgid "Start Now"
|
||||||
msgstr "Jetzt anfangen"
|
msgstr "Jetzt anfangen"
|
||||||
|
|
||||||
|
msgid "Company Assets"
|
||||||
|
msgstr "Betriebsvermögen"
|
||||||
|
|
||||||
|
msgid "Asset Types"
|
||||||
|
msgstr "Asset-Typ"
|
||||||
|
|
||||||
|
msgid "Asset Name"
|
||||||
|
msgstr "Asset-Name"
|
||||||
|
|
||||||
|
msgid "Performance"
|
||||||
|
msgstr "Performance"
|
||||||
|
|
||||||
|
msgid "Performance Review"
|
||||||
|
msgstr "Leistungsbeurteilung"
|
||||||
|
|
||||||
|
msgid "Performance Reviews"
|
||||||
|
msgstr "Leistungsbeurteilungen"
|
||||||
|
|
||||||
|
msgid "Review"
|
||||||
|
msgstr "Rezension"
|
||||||
|
|
||||||
|
msgid "Reviews"
|
||||||
|
msgstr "Bewertungen"
|
||||||
|
|
||||||
|
msgid "Review Feedback"
|
||||||
|
msgstr "Rückmeldung überprüfen"
|
||||||
|
|
||||||
|
msgid "Review Template"
|
||||||
|
msgstr "Vorlage überprüfen"
|
||||||
|
|
||||||
|
msgid "Template"
|
||||||
|
msgstr "Vorlage"
|
||||||
|
|
||||||
|
msgid "Review Date"
|
||||||
|
msgstr "Prüfungsdatum"
|
||||||
|
|
||||||
|
msgid "Self Assessment Due On"
|
||||||
|
msgstr "Selbsteinschätzung fällig am"
|
||||||
|
|
||||||
|
msgid "Review Period Start"
|
||||||
|
msgstr "Überprüfungszeitraum starten"
|
||||||
|
|
||||||
|
msgid "Review Period End"
|
||||||
|
msgstr "Periodenende überprüfen"
|
||||||
|
|
||||||
|
msgid "Attendees"
|
||||||
|
msgstr "Teilnehmer"
|
||||||
|
|
||||||
|
msgid "Performance Reviews Coordinated by Me"
|
||||||
|
msgstr "Performance Reviews koordiniert von mir"
|
||||||
|
|
||||||
|
msgid "Provide Feedback"
|
||||||
|
msgstr "Rückmeldung geben"
|
||||||
|
|
||||||
|
msgid "Review Status"
|
||||||
|
msgstr "Überprüfen Sie den Status"
|
||||||
|
|
||||||
|
msgid "Payroll Employees"
|
||||||
|
msgstr "Mitarbeiter der Gehaltsabrechnung"
|
||||||
|
|
||||||
|
msgid "Payroll Groups"
|
||||||
|
msgstr "Gehaltsabrechnungs-Gruppen"
|
||||||
|
|
||||||
|
msgid "Saved Calculations"
|
||||||
|
msgstr "Gespeicherte Berechnungen"
|
||||||
|
|
||||||
|
msgid "Total Leave Days"
|
||||||
|
msgstr "Gesamturlaubstage"
|
||||||
|
|
||||||
|
msgid "Actions"
|
||||||
|
msgstr "Aktionen"
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Bearbeiten"
|
||||||
|
|
||||||
|
msgid "View"
|
||||||
|
msgstr "Siehe"
|
||||||
|
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Löschen"
|
||||||
|
|
||||||
|
msgid "Copy"
|
||||||
|
msgstr "Kopie"
|
||||||
|
|||||||
@@ -1903,3 +1903,87 @@ msgstr "Conversations"
|
|||||||
|
|
||||||
msgid "Start Now"
|
msgid "Start Now"
|
||||||
msgstr "Start Now"
|
msgstr "Start Now"
|
||||||
|
|
||||||
|
msgid "Company Assets"
|
||||||
|
msgstr "Company Assets"
|
||||||
|
|
||||||
|
msgid "Asset Types"
|
||||||
|
msgstr "Asset Types"
|
||||||
|
|
||||||
|
msgid "Asset Name"
|
||||||
|
msgstr "Asset Name"
|
||||||
|
|
||||||
|
msgid "Performance"
|
||||||
|
msgstr "Performance"
|
||||||
|
|
||||||
|
msgid "Performance Review"
|
||||||
|
msgstr "Performance Review"
|
||||||
|
|
||||||
|
msgid "Performance Reviews"
|
||||||
|
msgstr "Performance Reviews"
|
||||||
|
|
||||||
|
msgid "Review"
|
||||||
|
msgstr "Review"
|
||||||
|
|
||||||
|
msgid "Reviews"
|
||||||
|
msgstr "Reviews"
|
||||||
|
|
||||||
|
msgid "Review Feedback"
|
||||||
|
msgstr "Review Feedback"
|
||||||
|
|
||||||
|
msgid "Review Template"
|
||||||
|
msgstr "Review Template"
|
||||||
|
|
||||||
|
msgid "Template"
|
||||||
|
msgstr "Template"
|
||||||
|
|
||||||
|
msgid "Review Date"
|
||||||
|
msgstr "Review Date"
|
||||||
|
|
||||||
|
msgid "Self Assessment Due On"
|
||||||
|
msgstr "Self Assessment Due On"
|
||||||
|
|
||||||
|
msgid "Review Period Start"
|
||||||
|
msgstr "Review Period Start"
|
||||||
|
|
||||||
|
msgid "Review Period End"
|
||||||
|
msgstr "Review Period End"
|
||||||
|
|
||||||
|
msgid "Attendees"
|
||||||
|
msgstr "Attendees"
|
||||||
|
|
||||||
|
msgid "Performance Reviews Coordinated by Me"
|
||||||
|
msgstr "Performance Reviews Coordinated by Me"
|
||||||
|
|
||||||
|
msgid "Provide Feedback"
|
||||||
|
msgstr "Provide Feedback"
|
||||||
|
|
||||||
|
msgid "Review Status"
|
||||||
|
msgstr "Review Status"
|
||||||
|
|
||||||
|
msgid "Payroll Employees"
|
||||||
|
msgstr "Payroll Employees"
|
||||||
|
|
||||||
|
msgid "Payroll Groups"
|
||||||
|
msgstr "Payroll Groups"
|
||||||
|
|
||||||
|
msgid "Saved Calculations"
|
||||||
|
msgstr "Saved Calculations"
|
||||||
|
|
||||||
|
msgid "Total Leave Days"
|
||||||
|
msgstr "Total Leave Days"
|
||||||
|
|
||||||
|
msgid "Actions"
|
||||||
|
msgstr "Actions"
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Edit"
|
||||||
|
|
||||||
|
msgid "View"
|
||||||
|
msgstr "View"
|
||||||
|
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Delete"
|
||||||
|
|
||||||
|
msgid "Copy"
|
||||||
|
msgstr "Copy"
|
||||||
|
|||||||
648
core/lang/es.po
648
core/lang/es.po
File diff suppressed because it is too large
Load Diff
1989
core/lang/fi.po
Normal file
1989
core/lang/fi.po
Normal file
File diff suppressed because it is too large
Load Diff
672
core/lang/fr.po
672
core/lang/fr.po
File diff suppressed because it is too large
Load Diff
@@ -1903,3 +1903,87 @@ msgstr "conversazioni"
|
|||||||
|
|
||||||
msgid "Start Now"
|
msgid "Start Now"
|
||||||
msgstr "Avviare ora"
|
msgstr "Avviare ora"
|
||||||
|
|
||||||
|
msgid "Company Assets"
|
||||||
|
msgstr "I beni aziendali"
|
||||||
|
|
||||||
|
msgid "Asset Types"
|
||||||
|
msgstr "Tipi di cespite"
|
||||||
|
|
||||||
|
msgid "Asset Name"
|
||||||
|
msgstr "Asset Nome"
|
||||||
|
|
||||||
|
msgid "Performance"
|
||||||
|
msgstr "Prestazione"
|
||||||
|
|
||||||
|
msgid "Performance Review"
|
||||||
|
msgstr "Valutazione delle prestazioni"
|
||||||
|
|
||||||
|
msgid "Performance Reviews"
|
||||||
|
msgstr "Recensioni sulle prestazioni"
|
||||||
|
|
||||||
|
msgid "Review"
|
||||||
|
msgstr "Revisione"
|
||||||
|
|
||||||
|
msgid "Reviews"
|
||||||
|
msgstr "Recensioni"
|
||||||
|
|
||||||
|
msgid "Review Feedback"
|
||||||
|
msgstr "Rivedi il feedback"
|
||||||
|
|
||||||
|
msgid "Review Template"
|
||||||
|
msgstr "Modello di recensione"
|
||||||
|
|
||||||
|
msgid "Template"
|
||||||
|
msgstr "Modello"
|
||||||
|
|
||||||
|
msgid "Review Date"
|
||||||
|
msgstr "Data della recensione"
|
||||||
|
|
||||||
|
msgid "Self Assessment Due On"
|
||||||
|
msgstr "Autovalutazione dovuta"
|
||||||
|
|
||||||
|
msgid "Review Period Start"
|
||||||
|
msgstr "Esaminare l'inizio del periodo"
|
||||||
|
|
||||||
|
msgid "Review Period End"
|
||||||
|
msgstr "Revisione periodo fine"
|
||||||
|
|
||||||
|
msgid "Attendees"
|
||||||
|
msgstr "I partecipanti"
|
||||||
|
|
||||||
|
msgid "Performance Reviews Coordinated by Me"
|
||||||
|
msgstr "Recensioni sulle prestazioni coordinate da me"
|
||||||
|
|
||||||
|
msgid "Provide Feedback"
|
||||||
|
msgstr "Fornire un feedback"
|
||||||
|
|
||||||
|
msgid "Review Status"
|
||||||
|
msgstr "Verifica lo stato"
|
||||||
|
|
||||||
|
msgid "Payroll Employees"
|
||||||
|
msgstr "Personale dipendente"
|
||||||
|
|
||||||
|
msgid "Payroll Groups"
|
||||||
|
msgstr "Gruppi di lavoro"
|
||||||
|
|
||||||
|
msgid "Saved Calculations"
|
||||||
|
msgstr "Calcoli salvati"
|
||||||
|
|
||||||
|
msgid "Total Leave Days"
|
||||||
|
msgstr "Giorni di congedo totali"
|
||||||
|
|
||||||
|
msgid "Actions"
|
||||||
|
msgstr "Azioni"
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Modifica"
|
||||||
|
|
||||||
|
msgid "View"
|
||||||
|
msgstr "Vedi"
|
||||||
|
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Cancellare"
|
||||||
|
|
||||||
|
msgid "Copy"
|
||||||
|
msgstr "Copia"
|
||||||
|
|||||||
@@ -1903,3 +1903,87 @@ msgstr "会話"
|
|||||||
|
|
||||||
msgid "Start Now"
|
msgid "Start Now"
|
||||||
msgstr "今すぐ開始"
|
msgstr "今すぐ開始"
|
||||||
|
|
||||||
|
msgid "Company Assets"
|
||||||
|
msgstr "会社の資産"
|
||||||
|
|
||||||
|
msgid "Asset Types"
|
||||||
|
msgstr "資産タイプ"
|
||||||
|
|
||||||
|
msgid "Asset Name"
|
||||||
|
msgstr "資産名"
|
||||||
|
|
||||||
|
msgid "Performance"
|
||||||
|
msgstr "パフォーマンス"
|
||||||
|
|
||||||
|
msgid "Performance Review"
|
||||||
|
msgstr "人事考課"
|
||||||
|
|
||||||
|
msgid "Performance Reviews"
|
||||||
|
msgstr "パフォーマンス・レビュー"
|
||||||
|
|
||||||
|
msgid "Review"
|
||||||
|
msgstr "レビュー"
|
||||||
|
|
||||||
|
msgid "Reviews"
|
||||||
|
msgstr "レビュー"
|
||||||
|
|
||||||
|
msgid "Review Feedback"
|
||||||
|
msgstr "フィードバックを確認する"
|
||||||
|
|
||||||
|
msgid "Review Template"
|
||||||
|
msgstr "レビューテンプレート"
|
||||||
|
|
||||||
|
msgid "Template"
|
||||||
|
msgstr "テンプレート"
|
||||||
|
|
||||||
|
msgid "Review Date"
|
||||||
|
msgstr "レビュー日"
|
||||||
|
|
||||||
|
msgid "Self Assessment Due On"
|
||||||
|
msgstr "セルフアセスメントの期限"
|
||||||
|
|
||||||
|
msgid "Review Period Start"
|
||||||
|
msgstr "審査期間の開始"
|
||||||
|
|
||||||
|
msgid "Review Period End"
|
||||||
|
msgstr "期間終了の確認"
|
||||||
|
|
||||||
|
msgid "Attendees"
|
||||||
|
msgstr "出席者"
|
||||||
|
|
||||||
|
msgid "Performance Reviews Coordinated by Me"
|
||||||
|
msgstr "私が調整したパフォーマンスレビュー"
|
||||||
|
|
||||||
|
msgid "Provide Feedback"
|
||||||
|
msgstr "フィードバックを提供します"
|
||||||
|
|
||||||
|
msgid "Review Status"
|
||||||
|
msgstr "審査ステータス"
|
||||||
|
|
||||||
|
msgid "Payroll Employees"
|
||||||
|
msgstr "給与計算従業員"
|
||||||
|
|
||||||
|
msgid "Payroll Groups"
|
||||||
|
msgstr "給与グループ"
|
||||||
|
|
||||||
|
msgid "Saved Calculations"
|
||||||
|
msgstr "保存された計算"
|
||||||
|
|
||||||
|
msgid "Total Leave Days"
|
||||||
|
msgstr "総休暇日数"
|
||||||
|
|
||||||
|
msgid "Actions"
|
||||||
|
msgstr "行動"
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "編集"
|
||||||
|
|
||||||
|
msgid "View"
|
||||||
|
msgstr "見る"
|
||||||
|
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "削除"
|
||||||
|
|
||||||
|
msgid "Copy"
|
||||||
|
msgstr "コピー"
|
||||||
|
|||||||
1989
core/lang/nl.po
Normal file
1989
core/lang/nl.po
Normal file
File diff suppressed because it is too large
Load Diff
1989
core/lang/no.po
Normal file
1989
core/lang/no.po
Normal file
File diff suppressed because it is too large
Load Diff
724
core/lang/pl.po
724
core/lang/pl.po
File diff suppressed because it is too large
Load Diff
1989
core/lang/pt.po
Normal file
1989
core/lang/pt.po
Normal file
File diff suppressed because it is too large
Load Diff
1989
core/lang/sr.po
Normal file
1989
core/lang/sr.po
Normal file
File diff suppressed because it is too large
Load Diff
1989
core/lang/sv.po
Normal file
1989
core/lang/sv.po
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1903,3 +1903,87 @@ msgstr "对话"
|
|||||||
|
|
||||||
msgid "Start Now"
|
msgid "Start Now"
|
||||||
msgstr "现在开始"
|
msgstr "现在开始"
|
||||||
|
|
||||||
|
msgid "Company Assets"
|
||||||
|
msgstr "公司资产"
|
||||||
|
|
||||||
|
msgid "Asset Types"
|
||||||
|
msgstr "资产类型"
|
||||||
|
|
||||||
|
msgid "Asset Name"
|
||||||
|
msgstr "资产名称"
|
||||||
|
|
||||||
|
msgid "Performance"
|
||||||
|
msgstr "性能"
|
||||||
|
|
||||||
|
msgid "Performance Review"
|
||||||
|
msgstr "性能评估"
|
||||||
|
|
||||||
|
msgid "Performance Reviews"
|
||||||
|
msgstr "绩效评估"
|
||||||
|
|
||||||
|
msgid "Review"
|
||||||
|
msgstr "评论"
|
||||||
|
|
||||||
|
msgid "Reviews"
|
||||||
|
msgstr "评测"
|
||||||
|
|
||||||
|
msgid "Review Feedback"
|
||||||
|
msgstr "回顾反馈"
|
||||||
|
|
||||||
|
msgid "Review Template"
|
||||||
|
msgstr "审核模板"
|
||||||
|
|
||||||
|
msgid "Template"
|
||||||
|
msgstr "模板"
|
||||||
|
|
||||||
|
msgid "Review Date"
|
||||||
|
msgstr "审核日期"
|
||||||
|
|
||||||
|
msgid "Self Assessment Due On"
|
||||||
|
msgstr "到期的自我评估"
|
||||||
|
|
||||||
|
msgid "Review Period Start"
|
||||||
|
msgstr "查看期间开始"
|
||||||
|
|
||||||
|
msgid "Review Period End"
|
||||||
|
msgstr "查看期末"
|
||||||
|
|
||||||
|
msgid "Attendees"
|
||||||
|
msgstr "与会者"
|
||||||
|
|
||||||
|
msgid "Performance Reviews Coordinated by Me"
|
||||||
|
msgstr "性能评估由我协调"
|
||||||
|
|
||||||
|
msgid "Provide Feedback"
|
||||||
|
msgstr "提供反馈信息"
|
||||||
|
|
||||||
|
msgid "Review Status"
|
||||||
|
msgstr "审核状态"
|
||||||
|
|
||||||
|
msgid "Payroll Employees"
|
||||||
|
msgstr "薪资员工"
|
||||||
|
|
||||||
|
msgid "Payroll Groups"
|
||||||
|
msgstr "工资组"
|
||||||
|
|
||||||
|
msgid "Saved Calculations"
|
||||||
|
msgstr "保存的计算"
|
||||||
|
|
||||||
|
msgid "Total Leave Days"
|
||||||
|
msgstr "休假总天数"
|
||||||
|
|
||||||
|
msgid "Actions"
|
||||||
|
msgstr "动作"
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "编辑"
|
||||||
|
|
||||||
|
msgid "View"
|
||||||
|
msgstr "视图"
|
||||||
|
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "删除"
|
||||||
|
|
||||||
|
msgid "Copy"
|
||||||
|
msgstr "复制"
|
||||||
|
|||||||
@@ -3,16 +3,16 @@
|
|||||||
|
|
||||||
@version V5.11 5 May 2010 (c) 2000-2010 John Lim (jlim#natsoft.com). All rights reserved.
|
@version V5.11 5 May 2010 (c) 2000-2010 John Lim (jlim#natsoft.com). All rights reserved.
|
||||||
Latest version is available at http://adodb.sourceforge.net
|
Latest version is available at http://adodb.sourceforge.net
|
||||||
|
|
||||||
Released under both BSD license and Lesser GPL library license.
|
Released under both BSD license and Lesser GPL library license.
|
||||||
Whenever there is any discrepancy between the two licenses,
|
Whenever there is any discrepancy between the two licenses,
|
||||||
the BSD license will take precedence.
|
the BSD license will take precedence.
|
||||||
|
|
||||||
Active Record implementation. Superset of Zend Framework's.
|
Active Record implementation. Superset of Zend Framework's.
|
||||||
|
|
||||||
Version 0.92
|
Version 0.92
|
||||||
|
|
||||||
See http://www-128.ibm.com/developerworks/java/library/j-cb03076/?ca=dgr-lnxw01ActiveRecord
|
See http://www-128.ibm.com/developerworks/java/library/j-cb03076/?ca=dgr-lnxw01ActiveRecord
|
||||||
for info on Ruby on Rails Active Record implementation
|
for info on Ruby on Rails Active Record implementation
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -44,7 +44,7 @@ class ADODB_Active_Table {
|
|||||||
|
|
||||||
// $db = database connection
|
// $db = database connection
|
||||||
// $index = name of index - can be associative, for an example see
|
// $index = name of index - can be associative, for an example see
|
||||||
// http://phplens.com/lens/lensforum/msgs.php?id=17790
|
// http://phplens.com/lens/lensforum/msgs.php?id=17790
|
||||||
// returns index into $_ADODB_ACTIVE_DBS
|
// returns index into $_ADODB_ACTIVE_DBS
|
||||||
function ADODB_SetDatabaseAdapter(&$db, $index=false)
|
function ADODB_SetDatabaseAdapter(&$db, $index=false)
|
||||||
{
|
{
|
||||||
@@ -58,23 +58,23 @@ function ADODB_SetDatabaseAdapter(&$db, $index=false)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if ($d->db->_connectionID === $db->_connectionID && $db->database == $d->db->database) {
|
if ($d->db->_connectionID === $db->_connectionID && $db->database == $d->db->database) {
|
||||||
$obj = $d;
|
$obj = $d;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($index == false) $index = sizeof($_ADODB_ACTIVE_DBS);
|
if ($index == false) $index = sizeof($_ADODB_ACTIVE_DBS);
|
||||||
|
|
||||||
if(!isset($obj)) {
|
if(!isset($obj)) {
|
||||||
$obj = new ADODB_Active_DB();
|
$obj = new ADODB_Active_DB();
|
||||||
$obj->db = $db;
|
$obj->db = $db;
|
||||||
$obj->tables = array();
|
$obj->tables = array();
|
||||||
}
|
}
|
||||||
|
|
||||||
$_ADODB_ACTIVE_DBS[$index] = $obj;
|
$_ADODB_ACTIVE_DBS[$index] = $obj;
|
||||||
|
|
||||||
return $index;
|
return $index;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -82,8 +82,8 @@ function ADODB_SetDatabaseAdapter(&$db, $index=false)
|
|||||||
class ADODB_Active_Record {
|
class ADODB_Active_Record {
|
||||||
static $_changeNames = true; // dynamically pluralize table names
|
static $_changeNames = true; // dynamically pluralize table names
|
||||||
static $_quoteNames = false;
|
static $_quoteNames = false;
|
||||||
|
|
||||||
static $_foreignSuffix = '_id'; //
|
static $_foreignSuffix = '_id'; //
|
||||||
var $_dbat; // associative index pointing to ADODB_Active_DB eg. $ADODB_Active_DBS[_dbat]
|
var $_dbat; // associative index pointing to ADODB_Active_DB eg. $ADODB_Active_DBS[_dbat]
|
||||||
var $_table; // tablename, if set in class definition then use it as table name
|
var $_table; // tablename, if set in class definition then use it as table name
|
||||||
var $_tableat; // associative index pointing to ADODB_Active_Table, eg $ADODB_Active_DBS[_dbat]->tables[$this->_tableat]
|
var $_tableat; // associative index pointing to ADODB_Active_Table, eg $ADODB_Active_DBS[_dbat]->tables[$this->_tableat]
|
||||||
@@ -103,7 +103,7 @@ class ADODB_Active_Record {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// should be static
|
// should be static
|
||||||
static function SetDatabaseAdapter(&$db, $index=false)
|
static function SetDatabaseAdapter(&$db, $index=false)
|
||||||
{
|
{
|
||||||
//error_log("Coming into ".self::_pluralize(get_called_class())."'s SetDatabaseAdapter where ".get_class());
|
//error_log("Coming into ".self::_pluralize(get_called_class())."'s SetDatabaseAdapter where ".get_class());
|
||||||
if(!$index || !isset($index)) {
|
if(!$index || !isset($index)) {
|
||||||
@@ -111,19 +111,19 @@ class ADODB_Active_Record {
|
|||||||
}
|
}
|
||||||
return ADODB_SetDatabaseAdapter($db, $index);
|
return ADODB_SetDatabaseAdapter($db, $index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function __set($name, $value)
|
public function __set($name, $value)
|
||||||
{
|
{
|
||||||
$name = str_replace(' ', '_', $name);
|
$name = str_replace(' ', '_', $name);
|
||||||
$this->$name = $value;
|
$this->$name = $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
// php5 constructor
|
// php5 constructor
|
||||||
function __construct($table = false, $pkeyarr=false, $db=false)
|
function __construct($table = false, $pkeyarr=false, $db=false)
|
||||||
{
|
{
|
||||||
global $ADODB_ASSOC_CASE,$_ADODB_ACTIVE_DBS;
|
global $ADODB_ASSOC_CASE,$_ADODB_ACTIVE_DBS;
|
||||||
|
|
||||||
if ($db == false && is_object($pkeyarr)) {
|
if ($db == false && is_object($pkeyarr)) {
|
||||||
$db = $pkeyarr;
|
$db = $pkeyarr;
|
||||||
$pkeyarr = false;
|
$pkeyarr = false;
|
||||||
@@ -143,9 +143,9 @@ class ADODB_Active_Record {
|
|||||||
if(isset($_ADODB_ACTIVE_DBS[self::_pluralize(get_called_class())])) {
|
if(isset($_ADODB_ACTIVE_DBS[self::_pluralize(get_called_class())])) {
|
||||||
$this->_dbat = self::_pluralize(get_called_class());
|
$this->_dbat = self::_pluralize(get_called_class());
|
||||||
} else {
|
} else {
|
||||||
$this->_dbat = key($_ADODB_ACTIVE_DBS);
|
$this->_dbat = key($_ADODB_ACTIVE_DBS);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->_table = $table;
|
$this->_table = $table;
|
||||||
@@ -153,13 +153,13 @@ class ADODB_Active_Record {
|
|||||||
|
|
||||||
$this->UpdateActiveTable($pkeyarr);
|
$this->UpdateActiveTable($pkeyarr);
|
||||||
}
|
}
|
||||||
|
|
||||||
function __wakeup()
|
function __wakeup()
|
||||||
{
|
{
|
||||||
$class = get_class($this);
|
$class = get_class($this);
|
||||||
new $class;
|
new $class;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function _pluralize($table)
|
static function _pluralize($table)
|
||||||
{
|
{
|
||||||
if (!ADODB_Active_Record::$_changeNames) return $table;
|
if (!ADODB_Active_Record::$_changeNames) return $table;
|
||||||
@@ -170,26 +170,26 @@ class ADODB_Active_Record {
|
|||||||
$lastc2 = substr($ut,$len-2);
|
$lastc2 = substr($ut,$len-2);
|
||||||
switch ($lastc) {
|
switch ($lastc) {
|
||||||
case 'S':
|
case 'S':
|
||||||
return $table.'es';
|
return $table.'es';
|
||||||
case 'Y':
|
case 'Y':
|
||||||
return substr($table,0,$len-1).'ies';
|
return substr($table,0,$len-1).'ies';
|
||||||
case 'X':
|
case 'X':
|
||||||
return $table.'es';
|
return $table.'es';
|
||||||
case 'H':
|
case 'H':
|
||||||
if ($lastc2 == 'CH' || $lastc2 == 'SH')
|
if ($lastc2 == 'CH' || $lastc2 == 'SH')
|
||||||
return $table.'es';
|
return $table.'es';
|
||||||
default:
|
default:
|
||||||
return $table.'s';
|
return $table.'s';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// CFR Lamest singular inflector ever - @todo Make it real!
|
// CFR Lamest singular inflector ever - @todo Make it real!
|
||||||
// Note: There is an assumption here...and it is that the argument's length >= 4
|
// Note: There is an assumption here...and it is that the argument's length >= 4
|
||||||
function _singularize($tables)
|
function _singularize($tables)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (!ADODB_Active_Record::$_changeNames) return $table;
|
if (!ADODB_Active_Record::$_changeNames) return $table;
|
||||||
|
|
||||||
$ut = strtoupper($tables);
|
$ut = strtoupper($tables);
|
||||||
$len = strlen($tables);
|
$len = strlen($tables);
|
||||||
if($ut[$len-1] != 'S')
|
if($ut[$len-1] != 'S')
|
||||||
@@ -221,14 +221,14 @@ class ADODB_Active_Record {
|
|||||||
$table->_hasMany[$foreignRef] = $ar;
|
$table->_hasMany[$foreignRef] = $ar;
|
||||||
# $this->$foreignRef = $this->_hasMany[$foreignRef]; // WATCHME Removed assignment by ref. to please __get()
|
# $this->$foreignRef = $this->_hasMany[$foreignRef]; // WATCHME Removed assignment by ref. to please __get()
|
||||||
}
|
}
|
||||||
|
|
||||||
// use when you don't want ADOdb to auto-pluralize tablename
|
// use when you don't want ADOdb to auto-pluralize tablename
|
||||||
static function TableHasMany($table, $foreignRef, $foreignKey = false, $foreignClass = 'ADODB_Active_Record')
|
static function TableHasMany($table, $foreignRef, $foreignKey = false, $foreignClass = 'ADODB_Active_Record')
|
||||||
{
|
{
|
||||||
$ar = new ADODB_Active_Record($table);
|
$ar = new ADODB_Active_Record($table);
|
||||||
$ar->hasMany($foreignRef, $foreignKey, $foreignClass);
|
$ar->hasMany($foreignRef, $foreignKey, $foreignClass);
|
||||||
}
|
}
|
||||||
|
|
||||||
// use when you don't want ADOdb to auto-pluralize tablename
|
// use when you don't want ADOdb to auto-pluralize tablename
|
||||||
static function TableKeyHasMany($table, $tablePKey, $foreignRef, $foreignKey = false, $foreignClass = 'ADODB_Active_Record')
|
static function TableKeyHasMany($table, $tablePKey, $foreignRef, $foreignKey = false, $foreignClass = 'ADODB_Active_Record')
|
||||||
{
|
{
|
||||||
@@ -236,8 +236,8 @@ class ADODB_Active_Record {
|
|||||||
$ar = new ADODB_Active_Record($table,$tablePKey);
|
$ar = new ADODB_Active_Record($table,$tablePKey);
|
||||||
$ar->hasMany($foreignRef, $foreignKey, $foreignClass);
|
$ar->hasMany($foreignRef, $foreignKey, $foreignClass);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// use when you want ADOdb to auto-pluralize tablename for you. Note that the class must already be defined.
|
// use when you want ADOdb to auto-pluralize tablename for you. Note that the class must already be defined.
|
||||||
// e.g. class Person will generate relationship for table Persons
|
// e.g. class Person will generate relationship for table Persons
|
||||||
static function ClassHasMany($parentclass, $foreignRef, $foreignKey = false, $foreignClass = 'ADODB_Active_Record')
|
static function ClassHasMany($parentclass, $foreignRef, $foreignKey = false, $foreignClass = 'ADODB_Active_Record')
|
||||||
@@ -245,7 +245,7 @@ class ADODB_Active_Record {
|
|||||||
$ar = new $parentclass();
|
$ar = new $parentclass();
|
||||||
$ar->hasMany($foreignRef, $foreignKey, $foreignClass);
|
$ar->hasMany($foreignRef, $foreignKey, $foreignClass);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function belongsTo($foreignRef,$foreignKey=false, $parentKey='', $parentClass = 'ADODB_Active_Record')
|
function belongsTo($foreignRef,$foreignKey=false, $parentKey='', $parentClass = 'ADODB_Active_Record')
|
||||||
{
|
{
|
||||||
@@ -256,24 +256,24 @@ class ADODB_Active_Record {
|
|||||||
$ar->parentKey = $parentKey;
|
$ar->parentKey = $parentKey;
|
||||||
$ar->UpdateActiveTable();
|
$ar->UpdateActiveTable();
|
||||||
$ar->foreignKey = ($foreignKey) ? $foreignKey : $foreignRef.ADODB_Active_Record::$_foreignSuffix;
|
$ar->foreignKey = ($foreignKey) ? $foreignKey : $foreignRef.ADODB_Active_Record::$_foreignSuffix;
|
||||||
|
|
||||||
$table =& $this->TableInfo();
|
$table =& $this->TableInfo();
|
||||||
$table->_belongsTo[$foreignRef] = $ar;
|
$table->_belongsTo[$foreignRef] = $ar;
|
||||||
# $this->$foreignRef = $this->_belongsTo[$foreignRef];
|
# $this->$foreignRef = $this->_belongsTo[$foreignRef];
|
||||||
}
|
}
|
||||||
|
|
||||||
static function ClassBelongsTo($class, $foreignRef, $foreignKey=false, $parentKey='', $parentClass = 'ADODB_Active_Record')
|
static function ClassBelongsTo($class, $foreignRef, $foreignKey=false, $parentKey='', $parentClass = 'ADODB_Active_Record')
|
||||||
{
|
{
|
||||||
$ar = new $class();
|
$ar = new $class();
|
||||||
$ar->belongsTo($foreignRef, $foreignKey, $parentKey, $parentClass);
|
$ar->belongsTo($foreignRef, $foreignKey, $parentKey, $parentClass);
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TableBelongsTo($table, $foreignRef, $foreignKey=false, $parentKey='', $parentClass = 'ADODB_Active_Record')
|
static function TableBelongsTo($table, $foreignRef, $foreignKey=false, $parentKey='', $parentClass = 'ADODB_Active_Record')
|
||||||
{
|
{
|
||||||
$ar = new ADOdb_Active_Record($table);
|
$ar = new ADOdb_Active_Record($table);
|
||||||
$ar->belongsTo($foreignRef, $foreignKey, $parentKey, $parentClass);
|
$ar->belongsTo($foreignRef, $foreignKey, $parentKey, $parentClass);
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TableKeyBelongsTo($table, $tablePKey, $foreignRef, $foreignKey=false, $parentKey='', $parentClass = 'ADODB_Active_Record')
|
static function TableKeyBelongsTo($table, $tablePKey, $foreignRef, $foreignKey=false, $parentKey='', $parentClass = 'ADODB_Active_Record')
|
||||||
{
|
{
|
||||||
if (!is_array($tablePKey)) $tablePKey = array($tablePKey);
|
if (!is_array($tablePKey)) $tablePKey = array($tablePKey);
|
||||||
@@ -284,8 +284,8 @@ class ADODB_Active_Record {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* __get Access properties - used for lazy loading
|
* __get Access properties - used for lazy loading
|
||||||
*
|
*
|
||||||
* @param mixed $name
|
* @param mixed $name
|
||||||
* @access protected
|
* @access protected
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
@@ -293,9 +293,9 @@ class ADODB_Active_Record {
|
|||||||
{
|
{
|
||||||
return $this->LoadRelations($name, '', -1, -1);
|
return $this->LoadRelations($name, '', -1, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $name
|
* @param string $name
|
||||||
* @param string $whereOrderBy : eg. ' AND field1 = value ORDER BY field2'
|
* @param string $whereOrderBy : eg. ' AND field1 = value ORDER BY field2'
|
||||||
* @param offset
|
* @param offset
|
||||||
* @param limit
|
* @param limit
|
||||||
@@ -307,12 +307,12 @@ class ADODB_Active_Record {
|
|||||||
$table = $this->TableInfo();
|
$table = $this->TableInfo();
|
||||||
if ($limit >= 0) $extras['limit'] = $limit;
|
if ($limit >= 0) $extras['limit'] = $limit;
|
||||||
if ($offset >= 0) $extras['offset'] = $offset;
|
if ($offset >= 0) $extras['offset'] = $offset;
|
||||||
|
|
||||||
if (strlen($whereOrderBy))
|
if (strlen($whereOrderBy))
|
||||||
if (!preg_match('/^[ \n\r]*AND/i',$whereOrderBy))
|
if (!preg_match('/^[ \n\r]*AND/i',$whereOrderBy))
|
||||||
if (!preg_match('/^[ \n\r]*ORDER[ \n\r]/i',$whereOrderBy))
|
if (!preg_match('/^[ \n\r]*ORDER[ \n\r]/i',$whereOrderBy))
|
||||||
$whereOrderBy = 'AND '.$whereOrderBy;
|
$whereOrderBy = 'AND '.$whereOrderBy;
|
||||||
|
|
||||||
if(!empty($table->_belongsTo[$name]))
|
if(!empty($table->_belongsTo[$name]))
|
||||||
{
|
{
|
||||||
$obj = $table->_belongsTo[$name];
|
$obj = $table->_belongsTo[$name];
|
||||||
@@ -323,7 +323,7 @@ class ADODB_Active_Record {
|
|||||||
{
|
{
|
||||||
if ($obj->parentKey) $key = $obj->parentKey;
|
if ($obj->parentKey) $key = $obj->parentKey;
|
||||||
else $key = reset($table->keys);
|
else $key = reset($table->keys);
|
||||||
|
|
||||||
$arrayOfOne = $obj->Find($key.'='.$this->$columnName.' '.$whereOrderBy,false,false,$extras);
|
$arrayOfOne = $obj->Find($key.'='.$this->$columnName.' '.$whereOrderBy,false,false,$extras);
|
||||||
if ($arrayOfOne) {
|
if ($arrayOfOne) {
|
||||||
$this->$name = $arrayOfOne[0];
|
$this->$name = $arrayOfOne[0];
|
||||||
@@ -332,7 +332,7 @@ class ADODB_Active_Record {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!empty($table->_hasMany[$name]))
|
if(!empty($table->_hasMany[$name]))
|
||||||
{
|
{
|
||||||
$obj = $table->_hasMany[$name];
|
$obj = $table->_hasMany[$name];
|
||||||
$key = reset($table->keys);
|
$key = reset($table->keys);
|
||||||
$id = @$this->$key;
|
$id = @$this->$key;
|
||||||
@@ -345,11 +345,11 @@ class ADODB_Active_Record {
|
|||||||
$this->$name = $objs;
|
$this->$name = $objs;
|
||||||
return $objs;
|
return $objs;
|
||||||
}
|
}
|
||||||
|
|
||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
//////////////////////////////////
|
//////////////////////////////////
|
||||||
|
|
||||||
// update metadata
|
// update metadata
|
||||||
function UpdateActiveTable($pkeys=false,$forceUpdate=false)
|
function UpdateActiveTable($pkeys=false,$forceUpdate=false)
|
||||||
{
|
{
|
||||||
@@ -365,7 +365,7 @@ class ADODB_Active_Record {
|
|||||||
|
|
||||||
$acttab = $tables[$tableat];
|
$acttab = $tables[$tableat];
|
||||||
foreach($acttab->flds as $name => $fld) {
|
foreach($acttab->flds as $name => $fld) {
|
||||||
if ($ADODB_ACTIVE_DEFVALS && isset($fld->default_value))
|
if ($ADODB_ACTIVE_DEFVALS && isset($fld->default_value))
|
||||||
$this->$name = $fld->default_value;
|
$this->$name = $fld->default_value;
|
||||||
else
|
else
|
||||||
$this->$name = null;
|
$this->$name = null;
|
||||||
@@ -379,19 +379,19 @@ class ADODB_Active_Record {
|
|||||||
@flock($fp, LOCK_SH);
|
@flock($fp, LOCK_SH);
|
||||||
$acttab = unserialize(fread($fp,100000));
|
$acttab = unserialize(fread($fp,100000));
|
||||||
fclose($fp);
|
fclose($fp);
|
||||||
if ($acttab->_created + $ADODB_ACTIVE_CACHESECS - (abs(rand()) % 16) > time()) {
|
if ($acttab->_created + $ADODB_ACTIVE_CACHESECS - (abs(rand()) % 16) > time()) {
|
||||||
// abs(rand()) randomizes deletion, reducing contention to delete/refresh file
|
// abs(rand()) randomizes deletion, reducing contention to delete/refresh file
|
||||||
// ideally, you should cache at least 32 secs
|
// ideally, you should cache at least 32 secs
|
||||||
|
|
||||||
foreach($acttab->flds as $name => $fld) {
|
foreach($acttab->flds as $name => $fld) {
|
||||||
if ($ADODB_ACTIVE_DEFVALS && isset($fld->default_value))
|
if ($ADODB_ACTIVE_DEFVALS && isset($fld->default_value))
|
||||||
$this->$name = $fld->default_value;
|
$this->$name = $fld->default_value;
|
||||||
else
|
else
|
||||||
$this->$name = null;
|
$this->$name = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
$activedb->tables[$table] = $acttab;
|
$activedb->tables[$table] = $acttab;
|
||||||
|
|
||||||
//if ($db->debug) ADOConnection::outp("Reading cached active record file: $fname");
|
//if ($db->debug) ADOConnection::outp("Reading cached active record file: $fname");
|
||||||
return;
|
return;
|
||||||
} else if ($db->debug) {
|
} else if ($db->debug) {
|
||||||
@@ -400,18 +400,18 @@ class ADODB_Active_Record {
|
|||||||
}
|
}
|
||||||
$activetab = new ADODB_Active_Table();
|
$activetab = new ADODB_Active_Table();
|
||||||
$activetab->name = $table;
|
$activetab->name = $table;
|
||||||
|
|
||||||
$save = $ADODB_FETCH_MODE;
|
$save = $ADODB_FETCH_MODE;
|
||||||
$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
|
$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
|
||||||
if ($db->fetchMode !== false) $savem = $db->SetFetchMode(false);
|
if ($db->fetchMode !== false) $savem = $db->SetFetchMode(false);
|
||||||
|
|
||||||
$cols = $db->MetaColumns($table);
|
$cols = $db->MetaColumns($table);
|
||||||
|
|
||||||
if (isset($savem)) $db->SetFetchMode($savem);
|
if (isset($savem)) $db->SetFetchMode($savem);
|
||||||
$ADODB_FETCH_MODE = $save;
|
$ADODB_FETCH_MODE = $save;
|
||||||
|
|
||||||
if (!$cols) {
|
if (!$cols) {
|
||||||
$this->Error("Invalid table name: $table",'UpdateActiveTable');
|
$this->Error("Invalid table name: $table",'UpdateActiveTable');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$fld = reset($cols);
|
$fld = reset($cols);
|
||||||
@@ -421,14 +421,14 @@ class ADODB_Active_Record {
|
|||||||
foreach($cols as $name => $fld) {
|
foreach($cols as $name => $fld) {
|
||||||
if (!empty($fld->primary_key)) $pkeys[] = $name;
|
if (!empty($fld->primary_key)) $pkeys[] = $name;
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
$pkeys = $this->GetPrimaryKeys($db, $table);
|
$pkeys = $this->GetPrimaryKeys($db, $table);
|
||||||
}
|
}
|
||||||
if (empty($pkeys)) {
|
if (empty($pkeys)) {
|
||||||
$this->Error("No primary key found for table $table",'UpdateActiveTable');
|
$this->Error("No primary key found for table $table",'UpdateActiveTable');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$attr = array();
|
$attr = array();
|
||||||
$keys = array();
|
$keys = array();
|
||||||
$ADODB_ASSOC_CASE = 2;
|
$ADODB_ASSOC_CASE = 2;
|
||||||
@@ -446,18 +446,18 @@ class ADODB_Active_Record {
|
|||||||
$keys[strtolower($name)] = strtolower($name);
|
$keys[strtolower($name)] = strtolower($name);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
foreach($cols as $name => $fldobj) {
|
foreach($cols as $name => $fldobj) {
|
||||||
$name = strtoupper($name);
|
$name = strtoupper($name);
|
||||||
|
|
||||||
if ($ADODB_ACTIVE_DEFVALS && isset($fldobj->default_value))
|
if ($ADODB_ACTIVE_DEFVALS && isset($fldobj->default_value))
|
||||||
$this->$name = $fldobj->default_value;
|
$this->$name = $fldobj->default_value;
|
||||||
else
|
else
|
||||||
$this->$name = null;
|
$this->$name = null;
|
||||||
$attr[$name] = $fldobj;
|
$attr[$name] = $fldobj;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach($pkeys as $k => $name) {
|
foreach($pkeys as $k => $name) {
|
||||||
$keys[strtoupper($name)] = strtoupper($name);
|
$keys[strtoupper($name)] = strtoupper($name);
|
||||||
}
|
}
|
||||||
@@ -465,7 +465,7 @@ class ADODB_Active_Record {
|
|||||||
default:
|
default:
|
||||||
foreach($cols as $name => $fldobj) {
|
foreach($cols as $name => $fldobj) {
|
||||||
$name = ($fldobj->name);
|
$name = ($fldobj->name);
|
||||||
|
|
||||||
if ($ADODB_ACTIVE_DEFVALS && isset($fldobj->default_value))
|
if ($ADODB_ACTIVE_DEFVALS && isset($fldobj->default_value))
|
||||||
$this->$name = $fldobj->default_value;
|
$this->$name = $fldobj->default_value;
|
||||||
else
|
else
|
||||||
@@ -477,7 +477,7 @@ class ADODB_Active_Record {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
$activetab->keys = $keys;
|
$activetab->keys = $keys;
|
||||||
$activetab->flds = $attr;
|
$activetab->flds = $attr;
|
||||||
|
|
||||||
@@ -489,58 +489,58 @@ class ADODB_Active_Record {
|
|||||||
}
|
}
|
||||||
if (isset($activedb->tables[$table])) {
|
if (isset($activedb->tables[$table])) {
|
||||||
$oldtab = $activedb->tables[$table];
|
$oldtab = $activedb->tables[$table];
|
||||||
|
|
||||||
if ($oldtab) $activetab->_belongsTo = $oldtab->_belongsTo;
|
if ($oldtab) $activetab->_belongsTo = $oldtab->_belongsTo;
|
||||||
if ($oldtab) $activetab->_hasMany = $oldtab->_hasMany;
|
if ($oldtab) $activetab->_hasMany = $oldtab->_hasMany;
|
||||||
}
|
}
|
||||||
$activedb->tables[$table] = $activetab;
|
$activedb->tables[$table] = $activetab;
|
||||||
}
|
}
|
||||||
|
|
||||||
function GetPrimaryKeys(&$db, $table)
|
function GetPrimaryKeys(&$db, $table)
|
||||||
{
|
{
|
||||||
return $db->MetaPrimaryKeys($table);
|
return $db->MetaPrimaryKeys($table);
|
||||||
}
|
}
|
||||||
|
|
||||||
// error handler for both PHP4+5.
|
// error handler for both PHP4+5.
|
||||||
function Error($err,$fn)
|
function Error($err,$fn)
|
||||||
{
|
{
|
||||||
global $_ADODB_ACTIVE_DBS;
|
global $_ADODB_ACTIVE_DBS;
|
||||||
|
|
||||||
$fn = get_class($this).'::'.$fn;
|
$fn = get_class($this).'::'.$fn;
|
||||||
$this->_lasterr = $fn.': '.$err;
|
$this->_lasterr = $fn.': '.$err;
|
||||||
|
|
||||||
if ($this->_dbat < 0) $db = false;
|
if ($this->_dbat < 0) $db = false;
|
||||||
else {
|
else {
|
||||||
$activedb = $_ADODB_ACTIVE_DBS[$this->_dbat];
|
$activedb = $_ADODB_ACTIVE_DBS[$this->_dbat];
|
||||||
$db = $activedb->db;
|
$db = $activedb->db;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (function_exists('adodb_throw')) {
|
if (function_exists('adodb_throw')) {
|
||||||
if (!$db) adodb_throw('ADOdb_Active_Record', $fn, -1, $err, 0, 0, false);
|
if (!$db) adodb_throw('ADOdb_Active_Record', $fn, -1, $err, 0, 0, false);
|
||||||
else adodb_throw($db->databaseType, $fn, -1, $err, 0, 0, $db);
|
else adodb_throw($db->databaseType, $fn, -1, $err, 0, 0, $db);
|
||||||
} else
|
} else
|
||||||
if (!$db || $db->debug) ADOConnection::outp($this->_lasterr);
|
if (!$db || $db->debug) ADOConnection::outp($this->_lasterr);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// return last error message
|
// return last error message
|
||||||
function ErrorMsg()
|
function ErrorMsg()
|
||||||
{
|
{
|
||||||
if (!function_exists('adodb_throw')) {
|
if (!function_exists('adodb_throw')) {
|
||||||
if ($this->_dbat < 0) $db = false;
|
if ($this->_dbat < 0) $db = false;
|
||||||
else $db = $this->DB();
|
else $db = $this->DB();
|
||||||
|
|
||||||
// last error could be database error too
|
// last error could be database error too
|
||||||
if ($db && $db->ErrorMsg()) return $db->ErrorMsg();
|
if ($db && $db->ErrorMsg()) return $db->ErrorMsg();
|
||||||
}
|
}
|
||||||
return $this->_lasterr;
|
return $this->_lasterr;
|
||||||
}
|
}
|
||||||
|
|
||||||
function ErrorNo()
|
function ErrorNo()
|
||||||
{
|
{
|
||||||
if ($this->_dbat < 0) return -9999; // no database connection...
|
if ($this->_dbat < 0) return -9999; // no database connection...
|
||||||
$db = $this->DB();
|
$db = $this->DB();
|
||||||
|
|
||||||
return (int) $db->ErrorNo();
|
return (int) $db->ErrorNo();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -549,7 +549,7 @@ class ADODB_Active_Record {
|
|||||||
function DB()
|
function DB()
|
||||||
{
|
{
|
||||||
global $_ADODB_ACTIVE_DBS;
|
global $_ADODB_ACTIVE_DBS;
|
||||||
|
|
||||||
if ($this->_dbat < 0) {
|
if ($this->_dbat < 0) {
|
||||||
$false = false;
|
$false = false;
|
||||||
$this->Error("No database connection set: use ADOdb_Active_Record::SetDatabaseAdaptor(\$db)", "DB");
|
$this->Error("No database connection set: use ADOdb_Active_Record::SetDatabaseAdaptor(\$db)", "DB");
|
||||||
@@ -559,7 +559,7 @@ class ADODB_Active_Record {
|
|||||||
$db = $activedb->db;
|
$db = $activedb->db;
|
||||||
return $db;
|
return $db;
|
||||||
}
|
}
|
||||||
|
|
||||||
// retrieve ADODB_Active_Table
|
// retrieve ADODB_Active_Table
|
||||||
function &TableInfo()
|
function &TableInfo()
|
||||||
{
|
{
|
||||||
@@ -568,8 +568,8 @@ class ADODB_Active_Record {
|
|||||||
$table = $activedb->tables[$this->_tableat];
|
$table = $activedb->tables[$this->_tableat];
|
||||||
return $table;
|
return $table;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// I have an ON INSERT trigger on a table that sets other columns in the table.
|
// I have an ON INSERT trigger on a table that sets other columns in the table.
|
||||||
// So, I find that for myTable, I want to reload an active record after saving it. -- Malcolm Cook
|
// So, I find that for myTable, I want to reload an active record after saving it. -- Malcolm Cook
|
||||||
function Reload()
|
function Reload()
|
||||||
@@ -580,21 +580,21 @@ class ADODB_Active_Record {
|
|||||||
return($this->Load($where));
|
return($this->Load($where));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// set a numeric array (using natural table field ordering) as object properties
|
// set a numeric array (using natural table field ordering) as object properties
|
||||||
function Set(&$row)
|
function Set(&$row)
|
||||||
{
|
{
|
||||||
global $ACTIVE_RECORD_SAFETY;
|
global $ACTIVE_RECORD_SAFETY;
|
||||||
|
|
||||||
$db = $this->DB();
|
$db = $this->DB();
|
||||||
|
|
||||||
if (!$row) {
|
if (!$row) {
|
||||||
$this->_saved = false;
|
$this->_saved = false;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->_saved = true;
|
$this->_saved = true;
|
||||||
|
|
||||||
$table = $this->TableInfo();
|
$table = $this->TableInfo();
|
||||||
if ($ACTIVE_RECORD_SAFETY && sizeof($table->flds) != sizeof($row)) {
|
if ($ACTIVE_RECORD_SAFETY && sizeof($table->flds) != sizeof($row)) {
|
||||||
# <AP>
|
# <AP>
|
||||||
@@ -613,7 +613,7 @@ class ADODB_Active_Record {
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
$keys = array_keys($row);
|
$keys = array_keys($row);
|
||||||
|
|
||||||
# <AP>
|
# <AP>
|
||||||
reset($keys);
|
reset($keys);
|
||||||
$this->_original = array();
|
$this->_original = array();
|
||||||
@@ -627,7 +627,7 @@ class ADODB_Active_Record {
|
|||||||
# </AP>
|
# </AP>
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// get last inserted id for INSERT
|
// get last inserted id for INSERT
|
||||||
function LastInsertID(&$db,$fieldname)
|
function LastInsertID(&$db,$fieldname)
|
||||||
{
|
{
|
||||||
@@ -635,32 +635,32 @@ class ADODB_Active_Record {
|
|||||||
$val = $db->Insert_ID($this->_table,$fieldname);
|
$val = $db->Insert_ID($this->_table,$fieldname);
|
||||||
else
|
else
|
||||||
$val = false;
|
$val = false;
|
||||||
|
|
||||||
if (is_null($val) || $val === false) {
|
if (is_null($val) || $val === false) {
|
||||||
// this might not work reliably in multi-user environment
|
// this might not work reliably in multi-user environment
|
||||||
return $db->GetOne("select max(".$fieldname.") from ".$this->_table);
|
return $db->GetOne("select max(".$fieldname.") from ".$this->_table);
|
||||||
}
|
}
|
||||||
return $val;
|
return $val;
|
||||||
}
|
}
|
||||||
|
|
||||||
// quote data in where clause
|
// quote data in where clause
|
||||||
function doquote(&$db, $val,$t)
|
function doquote(&$db, $val,$t)
|
||||||
{
|
{
|
||||||
switch($t) {
|
switch($t) {
|
||||||
case 'L':
|
case 'L':
|
||||||
if (strpos($db->databaseType,'postgres') !== false) return $db->qstr($val);
|
if (strpos($db->databaseType,'postgres') !== false) return $db->qstr($val);
|
||||||
case 'D':
|
case 'D':
|
||||||
case 'T':
|
case 'T':
|
||||||
if (empty($val)) return 'null';
|
if (empty($val)) return 'null';
|
||||||
|
|
||||||
case 'B':
|
case 'B':
|
||||||
case 'N':
|
case 'N':
|
||||||
case 'C':
|
case 'C':
|
||||||
case 'X':
|
case 'X':
|
||||||
if (is_null($val)) return 'null';
|
if (is_null($val)) return 'null';
|
||||||
|
|
||||||
if (strlen($val)>1 &&
|
if (strlen($val)>1 &&
|
||||||
(strncmp($val,"'",1) != 0 || substr($val,strlen($val)-1,1) != "'")) {
|
(strncmp($val,"'",1) != 0 || substr($val,strlen($val)-1,1) != "'")) {
|
||||||
return $db->qstr($val);
|
return $db->qstr($val);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -669,13 +669,13 @@ class ADODB_Active_Record {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// generate where clause for an UPDATE/SELECT
|
// generate where clause for an UPDATE/SELECT
|
||||||
function GenWhere(&$db, &$table)
|
function GenWhere(&$db, &$table)
|
||||||
{
|
{
|
||||||
$keys = $table->keys;
|
$keys = $table->keys;
|
||||||
$parr = array();
|
$parr = array();
|
||||||
|
|
||||||
foreach($keys as $k) {
|
foreach($keys as $k) {
|
||||||
$f = $table->flds[$k];
|
$f = $table->flds[$k];
|
||||||
if ($f) {
|
if ($f) {
|
||||||
@@ -684,17 +684,17 @@ class ADODB_Active_Record {
|
|||||||
}
|
}
|
||||||
return implode(' and ', $parr);
|
return implode(' and ', $parr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function _QName($n,$db=false)
|
function _QName($n,$db=false)
|
||||||
{
|
{
|
||||||
if (!ADODB_Active_Record::$_quoteNames) return $n;
|
if (!ADODB_Active_Record::$_quoteNames) return $n;
|
||||||
if (!$db) $db = $this->DB(); if (!$db) return false;
|
if (!$db) $db = $this->DB(); if (!$db) return false;
|
||||||
return $db->nameQuote.$n.$db->nameQuote;
|
return $db->nameQuote.$n.$db->nameQuote;
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------ Public functions below
|
//------------------------------------------------------------ Public functions below
|
||||||
|
|
||||||
function Load($where=null,$bindarr=false)
|
function Load($where=null,$bindarr=false)
|
||||||
{
|
{
|
||||||
$this->_where = $where;
|
$this->_where = $where;
|
||||||
@@ -705,31 +705,31 @@ class ADODB_Active_Record {
|
|||||||
}
|
}
|
||||||
return $this->LoadFromRawQuery($qry, $bindarr);
|
return $this->LoadFromRawQuery($qry, $bindarr);
|
||||||
}
|
}
|
||||||
|
|
||||||
function LoadFromRawQuery($qry, $bindarr=false) {
|
function LoadFromRawQuery($qry, $bindarr=false) {
|
||||||
global $ADODB_FETCH_MODE;
|
global $ADODB_FETCH_MODE;
|
||||||
|
|
||||||
$db = $this->DB(); if (!$db) return false;
|
$db = $this->DB(); if (!$db) return false;
|
||||||
|
|
||||||
$save = $ADODB_FETCH_MODE;
|
$save = $ADODB_FETCH_MODE;
|
||||||
$ADODB_FETCH_MODE = ADODB_FETCH_NUM;
|
$ADODB_FETCH_MODE = ADODB_FETCH_NUM;
|
||||||
if ($db->fetchMode !== false) $savem = $db->SetFetchMode(false);
|
if ($db->fetchMode !== false) $savem = $db->SetFetchMode(false);
|
||||||
|
|
||||||
$row = $db->GetRow($qry,$bindarr);
|
$row = $db->GetRow($qry,$bindarr);
|
||||||
|
|
||||||
if (isset($savem)) $db->SetFetchMode($savem);
|
if (isset($savem)) $db->SetFetchMode($savem);
|
||||||
$ADODB_FETCH_MODE = $save;
|
$ADODB_FETCH_MODE = $save;
|
||||||
|
|
||||||
return $this->Set($row);
|
return $this->Set($row);
|
||||||
}
|
}
|
||||||
|
|
||||||
# useful for multiple record inserts
|
# useful for multiple record inserts
|
||||||
# see http://phplens.com/lens/lensforum/msgs.php?id=17795
|
# see http://phplens.com/lens/lensforum/msgs.php?id=17795
|
||||||
function Reset()
|
function Reset()
|
||||||
{
|
{
|
||||||
$this->_where=null;
|
$this->_where=null;
|
||||||
$this->_saved = false;
|
$this->_saved = false;
|
||||||
$this->_lasterr = false;
|
$this->_lasterr = false;
|
||||||
$this->_original = false;
|
$this->_original = false;
|
||||||
$vars=get_object_vars($this);
|
$vars=get_object_vars($this);
|
||||||
foreach($vars as $k=>$v){
|
foreach($vars as $k=>$v){
|
||||||
@@ -740,24 +740,24 @@ class ADODB_Active_Record {
|
|||||||
$this->foreignName=strtolower(get_class($this));
|
$this->foreignName=strtolower(get_class($this));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// false on error
|
// false on error
|
||||||
function Save()
|
function Save()
|
||||||
{
|
{
|
||||||
if ($this->_saved) $ok = $this->Update();
|
if ($this->_saved) $ok = $this->Update();
|
||||||
else $ok = $this->Insert();
|
else $ok = $this->Insert();
|
||||||
|
|
||||||
return $ok;
|
return $ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// false on error
|
// false on error
|
||||||
function Insert()
|
function Insert()
|
||||||
{
|
{
|
||||||
$db = $this->DB(); if (!$db) return false;
|
$db = $this->DB(); if (!$db) return false;
|
||||||
$cnt = 0;
|
$cnt = 0;
|
||||||
$table = $this->TableInfo();
|
$table = $this->TableInfo();
|
||||||
|
|
||||||
$valarr = array();
|
$valarr = array();
|
||||||
$names = array();
|
$names = array();
|
||||||
$valstr = array();
|
$valstr = array();
|
||||||
@@ -771,7 +771,7 @@ class ADODB_Active_Record {
|
|||||||
$cnt += 1;
|
$cnt += 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($names)){
|
if (empty($names)){
|
||||||
foreach($table->flds as $name=>$fld) {
|
foreach($table->flds as $name=>$fld) {
|
||||||
$valarr[] = null;
|
$valarr[] = null;
|
||||||
@@ -782,7 +782,7 @@ class ADODB_Active_Record {
|
|||||||
}
|
}
|
||||||
$sql = 'INSERT INTO '.$this->_table."(".implode(',',$names).') VALUES ('.implode(',',$valstr).')';
|
$sql = 'INSERT INTO '.$this->_table."(".implode(',',$names).') VALUES ('.implode(',',$valstr).')';
|
||||||
$ok = $db->Execute($sql,$valarr);
|
$ok = $db->Execute($sql,$valarr);
|
||||||
|
|
||||||
if ($ok) {
|
if ($ok) {
|
||||||
$this->_saved = true;
|
$this->_saved = true;
|
||||||
$autoinc = false;
|
$autoinc = false;
|
||||||
@@ -797,32 +797,32 @@ class ADODB_Active_Record {
|
|||||||
$this->$k = $this->LastInsertID($db,$k);
|
$this->$k = $this->LastInsertID($db,$k);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->_original = $valarr;
|
$this->_original = $valarr;
|
||||||
return !empty($ok);
|
return !empty($ok);
|
||||||
}
|
}
|
||||||
|
|
||||||
function Delete()
|
function Delete()
|
||||||
{
|
{
|
||||||
$db = $this->DB(); if (!$db) return false;
|
$db = $this->DB(); if (!$db) return false;
|
||||||
$table = $this->TableInfo();
|
$table = $this->TableInfo();
|
||||||
|
|
||||||
$where = $this->GenWhere($db,$table);
|
$where = $this->GenWhere($db,$table);
|
||||||
$sql = 'DELETE FROM '.$this->_table.' WHERE '.$where;
|
$sql = 'DELETE FROM '.$this->_table.' WHERE '.$where;
|
||||||
$ok = $db->Execute($sql);
|
$ok = $db->Execute($sql);
|
||||||
|
|
||||||
return $ok ? true : false;
|
return $ok ? true : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function intify($ret) {
|
protected function intify($ret) {
|
||||||
if(is_numeric($ret)) {
|
if(is_numeric($ret)) {
|
||||||
return intval($ret);
|
return intval($ret);
|
||||||
} else {
|
} else {
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function Aggregate($function, $column, $whereGroupBy, $bindarr=false) {
|
function Aggregate($function, $column, $whereGroupBy, $bindarr=false) {
|
||||||
if(!in_array($function, ADODB_Active_Record::$_supportedAggregateFunctions)) {
|
if(!in_array($function, ADODB_Active_Record::$_supportedAggregateFunctions)) {
|
||||||
throw new InvalidArgumentException("Unknown Aggregate Function $function");
|
throw new InvalidArgumentException("Unknown Aggregate Function $function");
|
||||||
@@ -833,11 +833,11 @@ class ADODB_Active_Record {
|
|||||||
$db = $this->DB(); if (!$db || empty($this->_table)) return false;
|
$db = $this->DB(); if (!$db || empty($this->_table)) return false;
|
||||||
return $db->GetOne("select $function($column) from ".$this->_table." where ". $whereGroupBy, $bindarr);
|
return $db->GetOne("select $function($column) from ".$this->_table." where ". $whereGroupBy, $bindarr);
|
||||||
}
|
}
|
||||||
|
|
||||||
function Count($whereGroupBy, $bindarr=false) {
|
function Count($whereGroupBy, $bindarr=false) {
|
||||||
return $this->intify( $this->Aggregate("count", "*", $whereGroupBy, $bindarr) );
|
return $this->intify( $this->Aggregate("count", "*", $whereGroupBy, $bindarr) );
|
||||||
}
|
}
|
||||||
|
|
||||||
function CountDistinct($column, $whereGroupBy, $bindarr=false) {
|
function CountDistinct($column, $whereGroupBy, $bindarr=false) {
|
||||||
if(!in_array($column, $this->GetAttributeNames())) {
|
if(!in_array($column, $this->GetAttributeNames())) {
|
||||||
throw new InvalidArgumentException("Unknown Column for CountDistinct $column");
|
throw new InvalidArgumentException("Unknown Column for CountDistinct $column");
|
||||||
@@ -845,7 +845,7 @@ class ADODB_Active_Record {
|
|||||||
$db = $this->DB(); if (!$db || empty($this->_table)) return false;
|
$db = $this->DB(); if (!$db || empty($this->_table)) return false;
|
||||||
return $this->intify( $db->GetOne("select count(distinct($column)) from ".$this->_table." where ". $whereGroupBy, $bindarr) );
|
return $this->intify( $db->GetOne("select count(distinct($column)) from ".$this->_table." where ". $whereGroupBy, $bindarr) );
|
||||||
}
|
}
|
||||||
|
|
||||||
// returns an array of active record objects
|
// returns an array of active record objects
|
||||||
function Find($whereOrderBy,$bindarr=false,$pkeysArr=false,$extra=array())
|
function Find($whereOrderBy,$bindarr=false,$pkeysArr=false,$extra=array())
|
||||||
{
|
{
|
||||||
@@ -853,7 +853,7 @@ class ADODB_Active_Record {
|
|||||||
$arr = $db->GetActiveRecordsClass(get_class($this),$this->_table, $whereOrderBy,$bindarr,$pkeysArr,$extra);
|
$arr = $db->GetActiveRecordsClass(get_class($this),$this->_table, $whereOrderBy,$bindarr,$pkeysArr,$extra);
|
||||||
return $arr;
|
return $arr;
|
||||||
}
|
}
|
||||||
|
|
||||||
// returns an array of active record objects
|
// returns an array of active record objects
|
||||||
function FindFromRawQuery($query,$bindarr=false,$pkeysArr=false,$extra=array())
|
function FindFromRawQuery($query,$bindarr=false,$pkeysArr=false,$extra=array())
|
||||||
{
|
{
|
||||||
@@ -861,17 +861,17 @@ class ADODB_Active_Record {
|
|||||||
$arr = $db->GetActiveRecordsClass2(get_class($this),$this->_table, $query,$bindarr,$pkeysArr,$extra);
|
$arr = $db->GetActiveRecordsClass2(get_class($this),$this->_table, $query,$bindarr,$pkeysArr,$extra);
|
||||||
return $arr;
|
return $arr;
|
||||||
}
|
}
|
||||||
|
|
||||||
// returns 0 on error, 1 on update, 2 on insert
|
// returns 0 on error, 1 on update, 2 on insert
|
||||||
function Replace()
|
function Replace()
|
||||||
{
|
{
|
||||||
global $ADODB_ASSOC_CASE;
|
global $ADODB_ASSOC_CASE;
|
||||||
|
|
||||||
$db = $this->DB(); if (!$db) return false;
|
$db = $this->DB(); if (!$db) return false;
|
||||||
$table = $this->TableInfo();
|
$table = $this->TableInfo();
|
||||||
|
|
||||||
$pkey = $table->keys;
|
$pkey = $table->keys;
|
||||||
|
|
||||||
foreach($table->flds as $name=>$fld) {
|
foreach($table->flds as $name=>$fld) {
|
||||||
$val = $this->$name;
|
$val = $this->$name;
|
||||||
/*
|
/*
|
||||||
@@ -887,24 +887,24 @@ class ADODB_Active_Record {
|
|||||||
if (is_null($val) && !empty($fld->auto_increment)) {
|
if (is_null($val) && !empty($fld->auto_increment)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_array($val)) continue;
|
if (is_array($val)) continue;
|
||||||
|
|
||||||
$t = $db->MetaType($fld->type);
|
$t = $db->MetaType($fld->type);
|
||||||
$arr[$name] = $this->doquote($db,$val,$t);
|
$arr[$name] = $this->doquote($db,$val,$t);
|
||||||
$valarr[] = $val;
|
$valarr[] = $val;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!is_array($pkey)) $pkey = array($pkey);
|
if (!is_array($pkey)) $pkey = array($pkey);
|
||||||
|
|
||||||
|
|
||||||
if ($ADODB_ASSOC_CASE == 0)
|
if ($ADODB_ASSOC_CASE == 0)
|
||||||
foreach($pkey as $k => $v)
|
foreach($pkey as $k => $v)
|
||||||
$pkey[$k] = strtolower($v);
|
$pkey[$k] = strtolower($v);
|
||||||
elseif ($ADODB_ASSOC_CASE == 1)
|
elseif ($ADODB_ASSOC_CASE == 1)
|
||||||
foreach($pkey as $k => $v)
|
foreach($pkey as $k => $v)
|
||||||
$pkey[$k] = strtoupper($v);
|
$pkey[$k] = strtoupper($v);
|
||||||
|
|
||||||
$ok = $db->Replace($this->_table,$arr,$pkey);
|
$ok = $db->Replace($this->_table,$arr,$pkey);
|
||||||
if ($ok) {
|
if ($ok) {
|
||||||
$this->_saved = true; // 1= update 2=insert
|
$this->_saved = true; // 1= update 2=insert
|
||||||
@@ -921,9 +921,9 @@ class ADODB_Active_Record {
|
|||||||
$this->$k = $this->LastInsertID($db,$k);
|
$this->$k = $this->LastInsertID($db,$k);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->_original = $valarr;
|
$this->_original = $valarr;
|
||||||
}
|
}
|
||||||
return $ok;
|
return $ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -932,14 +932,14 @@ class ADODB_Active_Record {
|
|||||||
{
|
{
|
||||||
$db = $this->DB(); if (!$db) return false;
|
$db = $this->DB(); if (!$db) return false;
|
||||||
$table = $this->TableInfo();
|
$table = $this->TableInfo();
|
||||||
|
|
||||||
$where = $this->GenWhere($db, $table);
|
$where = $this->GenWhere($db, $table);
|
||||||
|
|
||||||
if (!$where) {
|
if (!$where) {
|
||||||
$this->error("Where missing for table $table", "Update");
|
$this->error("Where missing for table $table", "Update");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$valarr = array();
|
$valarr = array();
|
||||||
$neworig = array();
|
$neworig = array();
|
||||||
$pairs = array();
|
$pairs = array();
|
||||||
$i = -1;
|
$i = -1;
|
||||||
@@ -948,10 +948,10 @@ class ADODB_Active_Record {
|
|||||||
$i += 1;
|
$i += 1;
|
||||||
$val = $this->$name;
|
$val = $this->$name;
|
||||||
$neworig[] = $val;
|
$neworig[] = $val;
|
||||||
|
|
||||||
if (isset($table->keys[$name]) || is_array($val))
|
if (isset($table->keys[$name]) || is_array($val))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (is_null($val)) {
|
if (is_null($val)) {
|
||||||
if (isset($fld->not_null) && $fld->not_null) {
|
if (isset($fld->not_null) && $fld->not_null) {
|
||||||
if (isset($fld->default_value) && strlen($fld->default_value)) continue;
|
if (isset($fld->default_value) && strlen($fld->default_value)) continue;
|
||||||
@@ -969,8 +969,8 @@ class ADODB_Active_Record {
|
|||||||
$pairs[] = $this->_QName($name,$db).'='.$db->Param($cnt);
|
$pairs[] = $this->_QName($name,$db).'='.$db->Param($cnt);
|
||||||
$cnt += 1;
|
$cnt += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!$cnt) return -1;
|
if (!$cnt) return -1;
|
||||||
$sql = 'UPDATE '.$this->_table." SET ".implode(",",$pairs)." WHERE ".$where;
|
$sql = 'UPDATE '.$this->_table." SET ".implode(",",$pairs)." WHERE ".$where;
|
||||||
$ok = $db->Execute($sql,$valarr);
|
$ok = $db->Execute($sql,$valarr);
|
||||||
@@ -980,21 +980,21 @@ class ADODB_Active_Record {
|
|||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
function GetAttributeNames()
|
function GetAttributeNames()
|
||||||
{
|
{
|
||||||
$table = $this->TableInfo();
|
$table = $this->TableInfo();
|
||||||
if (!$table) return false;
|
if (!$table) return false;
|
||||||
return array_keys($table->flds);
|
return array_keys($table->flds);
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
function adodb_GetActiveRecordsClass(&$db, $class, $table,$whereOrderBy,$bindarr, $primkeyArr,
|
function adodb_GetActiveRecordsClass(&$db, $class, $table,$whereOrderBy,$bindarr, $primkeyArr,
|
||||||
$extra)
|
$extra)
|
||||||
{
|
{
|
||||||
$qry = "select * from ".$table;
|
$qry = "select * from ".$table;
|
||||||
|
|
||||||
if (!empty($whereOrderBy)) {
|
if (!empty($whereOrderBy)) {
|
||||||
$qry .= ' WHERE '.$whereOrderBy;
|
$qry .= ' WHERE '.$whereOrderBy;
|
||||||
}
|
}
|
||||||
@@ -1006,7 +1006,7 @@ function adodb_GetActiveRecordsClass2(&$db, $class, $table, $qry, $bindarr, $pri
|
|||||||
{
|
{
|
||||||
global $_ADODB_ACTIVE_DBS;
|
global $_ADODB_ACTIVE_DBS;
|
||||||
|
|
||||||
|
|
||||||
$save = $db->SetFetchMode(ADODB_FETCH_NUM);
|
$save = $db->SetFetchMode(ADODB_FETCH_NUM);
|
||||||
if(isset($extra['limit']))
|
if(isset($extra['limit']))
|
||||||
{
|
{
|
||||||
@@ -1027,13 +1027,13 @@ function adodb_GetActiveRecordsClass2(&$db, $class, $table, $qry, $bindarr, $pri
|
|||||||
}
|
}
|
||||||
|
|
||||||
$db->SetFetchMode($save);
|
$db->SetFetchMode($save);
|
||||||
|
|
||||||
$false = false;
|
$false = false;
|
||||||
|
|
||||||
if ($rows === false) {
|
if ($rows === false) {
|
||||||
return $false;
|
return $false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!class_exists($class)) {
|
if (!class_exists($class)) {
|
||||||
$db->outp_throw("Unknown class $class in GetActiveRecordsClass()",'GetActiveRecordsClass');
|
$db->outp_throw("Unknown class $class in GetActiveRecordsClass()",'GetActiveRecordsClass');
|
||||||
@@ -1047,7 +1047,7 @@ function adodb_GetActiveRecordsClass2(&$db, $class, $table, $qry, $bindarr, $pri
|
|||||||
$arrRef = array();
|
$arrRef = array();
|
||||||
$bTos = array(); // Will store belongTo's indices if any
|
$bTos = array(); // Will store belongTo's indices if any
|
||||||
foreach($rows as $row) {
|
foreach($rows as $row) {
|
||||||
|
|
||||||
$obj = new $class($table,$primkeyArr,$db);
|
$obj = new $class($table,$primkeyArr,$db);
|
||||||
if ($obj->ErrorNo()){
|
if ($obj->ErrorNo()){
|
||||||
$db->_errorMsg = $obj->ErrorMsg();
|
$db->_errorMsg = $obj->ErrorMsg();
|
||||||
@@ -1055,7 +1055,7 @@ function adodb_GetActiveRecordsClass2(&$db, $class, $table, $qry, $bindarr, $pri
|
|||||||
}
|
}
|
||||||
$obj->Set($row);
|
$obj->Set($row);
|
||||||
$arr[] = $obj;
|
$arr[] = $obj;
|
||||||
} // foreach($rows as $row)
|
} // foreach($rows as $row)
|
||||||
|
|
||||||
return $arr;
|
return $arr;
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user